ceph: check inode type for CEPH_CAP_FILE_{CACHE,RD,REXTEND,LAZYIO}
[linux-2.6-microblaze.git] / fs / ceph / mds_client.c
index ea52448..2980e57 100644 (file)
@@ -1776,7 +1776,8 @@ static int trim_caps_cb(struct inode *inode, struct ceph_cap *cap, void *arg)
        }
        /* The inode has cached pages, but it's no longer used.
         * we can safely drop it */
-       if (wanted == 0 && used == CEPH_CAP_FILE_CACHE &&
+       if (S_ISREG(inode->i_mode) &&
+           wanted == 0 && used == CEPH_CAP_FILE_CACHE &&
            !(oissued & CEPH_CAP_FILE_CACHE)) {
          used = 0;
          oissued = 0;