diff options
Diffstat (limited to 'fs/ceph/snap.c')
-rw-r--r-- | fs/ceph/snap.c | 6 |
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; |