ceph: use new D_COMPLETE dentry flag

We used to use a flag on the directory inode to track whether the dcache
contents for a directory were a complete cached copy.  Switch to a dentry
flag CEPH_D_COMPLETE that is safely updated by ->d_prune().

Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
Sage Weil
2011-11-03 09:23:36 -07:00
parent b58dc4100b
commit c6ffe10015
5 changed files with 68 additions and 23 deletions

View File

@@ -2002,7 +2002,7 @@ out:
}
/*
* Invalidate dir I_COMPLETE, dentry lease state on an aborted MDS
* Invalidate dir D_COMPLETE, dentry lease state on an aborted MDS
* namespace request.
*/
void ceph_invalidate_dir_request(struct ceph_mds_request *req)
@@ -2010,9 +2010,9 @@ void ceph_invalidate_dir_request(struct ceph_mds_request *req)
struct inode *inode = req->r_locked_dir;
struct ceph_inode_info *ci = ceph_inode(inode);
dout("invalidate_dir_request %p (I_COMPLETE, lease(s))\n", inode);
dout("invalidate_dir_request %p (D_COMPLETE, lease(s))\n", inode);
spin_lock(&inode->i_lock);
ci->i_ceph_flags &= ~CEPH_I_COMPLETE;
ceph_dir_clear_complete(inode);
ci->i_release_count++;
spin_unlock(&inode->i_lock);