From: Sage Weil Date: Fri, 30 Jan 2009 23:03:21 +0000 (-0800) Subject: kclient: release CAP_LINK_RDCACHE before unlink X-Git-Tag: v0.7~225 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=306e5560a711cca2564790aa533a36b97c5d3b05;p=ceph.git kclient: release CAP_LINK_RDCACHE before unlink --- diff --git a/src/kernel/dir.c b/src/kernel/dir.c index 1177c1c9b5a..85292110279 100644 --- a/src/kernel/dir.c +++ b/src/kernel/dir.c @@ -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; }