diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 51546d54b8415bf86530e2df42e585dac22729ec..7bf182b0397396f961151a1c1b59218bc1cb2749 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -2384,7 +2384,7 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant, ceph_cap_string(cap->issued), ceph_cap_string(newcaps), ceph_cap_string(revoking)); - if (revoking & CEPH_CAP_FILE_BUFFER) + if (revoking & used & CEPH_CAP_FILE_BUFFER) writeback = 1; /* initiate writeback; will delay ack */ else if (revoking == CEPH_CAP_FILE_CACHE && (newcaps & CEPH_CAP_FILE_LAZYIO) == 0 &&