aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/snap.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph/snap.c')
-rw-r--r--fs/ceph/snap.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/ceph/snap.c b/fs/ceph/snap.c
index ac030c9d9959..e26437191333 100644
--- a/fs/ceph/snap.c
+++ b/fs/ceph/snap.c
@@ -465,9 +465,8 @@ void ceph_queue_cap_snap(struct ceph_inode_info *ci)
465 cap_snap. lucky us. */ 465 cap_snap. lucky us. */
466 dout("queue_cap_snap %p already pending\n", inode); 466 dout("queue_cap_snap %p already pending\n", inode);
467 kfree(capsnap); 467 kfree(capsnap);
468 } else if (ci->i_wrbuffer_ref_head || 468 } else if (dirty & (CEPH_CAP_AUTH_EXCL|CEPH_CAP_XATTR_EXCL|
469 (dirty & (CEPH_CAP_AUTH_EXCL|CEPH_CAP_XATTR_EXCL| 469 CEPH_CAP_FILE_EXCL|CEPH_CAP_FILE_WR)) {
470 CEPH_CAP_FILE_EXCL|CEPH_CAP_FILE_WR))) {
471 struct ceph_snap_context *snapc = ci->i_head_snapc; 470 struct ceph_snap_context *snapc = ci->i_head_snapc;
472 471
473 /* 472 /*
@@ -480,7 +479,6 @@ void ceph_queue_cap_snap(struct ceph_inode_info *ci)
480 dout("queue_cap_snap %p cap_snap %p queuing under %p %s\n", 479 dout("queue_cap_snap %p cap_snap %p queuing under %p %s\n",
481 inode, capsnap, snapc, ceph_cap_string(dirty)); 480 inode, capsnap, snapc, ceph_cap_string(dirty));
482 ihold(inode); 481 ihold(inode);
483 BUG_ON(dirty == 0);
484 482
485 atomic_set(&capsnap->nref, 1); 483 atomic_set(&capsnap->nref, 1);
486 capsnap->ci = ci; 484 capsnap->ci = ci;