]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: release CAP_LINK_RDCACHE before unlink
authorSage Weil <sage@newdream.net>
Fri, 30 Jan 2009 23:03:21 +0000 (15:03 -0800)
committerSage Weil <sage@newdream.net>
Sat, 31 Jan 2009 00:03:13 +0000 (16:03 -0800)
src/kernel/dir.c

index 1177c1c9b5a90fa271f405e4d1c497912c9f63dc..852921102797fc86e89b545681c42ae6126b4ce0 100644 (file)
@@ -734,13 +734,10 @@ static int ceph_unlink(struct inode *dir, struct dentry *dentry)
 
        if ((ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
                ceph_release_caps(dir, CEPH_CAP_FILE_RDCACHE);
-       ceph_mdsc_lease_release(mdsc, dir, dentry,
-                               CEPH_LOCK_DN);
-       if ((ceph_caps_issued(ceph_inode(dir)) & CEPH_CAP_FILE_EXCL) == 0)
-               ceph_release_caps(inode, CEPH_CAP_LINK_RDCACHE);
+       ceph_mdsc_lease_release(mdsc, dir, dentry, CEPH_LOCK_DN);
+       ceph_release_caps(inode, CEPH_CAP_LINK_RDCACHE);
        err = ceph_mdsc_do_request(mdsc, dir, req);
        ceph_mdsc_put_request(req);
-
        return err;
 }