ceph: clear parent D_COMPLETE flag when on dentry prune
When the VFS prunes a dentry from the cache, clear the D_COMPLETE flag on the parent dentry. Do this for the live and snapshotted namespaces. Do not bother for the .snap dir contents, since we do not cache that. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
@@ -203,6 +203,7 @@ struct ceph_inode_xattr {
|
||||
* Ceph dentry state
|
||||
*/
|
||||
struct ceph_dentry_info {
|
||||
unsigned long flags;
|
||||
struct ceph_mds_session *lease_session;
|
||||
u32 lease_gen, lease_shared_gen;
|
||||
u32 lease_seq;
|
||||
@@ -213,6 +214,18 @@ struct ceph_dentry_info {
|
||||
u64 offset;
|
||||
};
|
||||
|
||||
/*
|
||||
* dentry flags
|
||||
*
|
||||
* The locking for D_COMPLETE is a bit odd:
|
||||
* - we can clear it at almost any time (see ceph_d_prune)
|
||||
* - it is only meaningful if:
|
||||
* - we hold dir inode i_lock
|
||||
* - we hold dir FILE_SHARED caps
|
||||
* - the dentry D_COMPLETE is set
|
||||
*/
|
||||
#define CEPH_D_COMPLETE 1 /* if set, d_u.d_subdirs is complete directory */
|
||||
|
||||
struct ceph_inode_xattrs_info {
|
||||
/*
|
||||
* (still encoded) xattr blob. we avoid the overhead of parsing
|
||||
|
Reference in New Issue
Block a user