diff options
Diffstat (limited to 'fs/aufs/inode.h')
-rw-r--r-- | fs/aufs/inode.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/fs/aufs/inode.h b/fs/aufs/inode.h index 14f788268..60995c054 100644 --- a/fs/aufs/inode.h +++ b/fs/aufs/inode.h @@ -22,7 +22,10 @@ struct au_hnotify { /* never use fsnotify_add_vfsmount_mark() */ struct fsnotify_mark hn_mark; #endif - struct inode *hn_aufs_inode; /* no get/put */ + union { + struct inode *hn_aufs_inode; /* no get/put */ + struct llist_node hn_lnode; /* delayed free */ + }; #endif } ____cacheline_aligned_in_smp; @@ -65,7 +68,10 @@ struct au_iinfo { struct au_icntnr { struct au_iinfo iinfo; struct inode vfs_inode; - struct hlist_node plink; + union { + struct hlist_node plink; + struct llist_node lnode; /* delayed free */ + }; } ____cacheline_aligned_in_smp; /* au_pin flags */ @@ -98,7 +104,6 @@ struct au_pin { void au_pin_hdir_unlock(struct au_pin *p); int au_pin_hdir_lock(struct au_pin *p); int au_pin_hdir_relock(struct au_pin *p); -void au_pin_hdir_set_owner(struct au_pin *p, struct task_struct *task); void au_pin_hdir_acquire_nest(struct au_pin *p); void au_pin_hdir_release(struct au_pin *p); @@ -293,10 +298,10 @@ AuStubVoid(au_plink_half_refresh, struct super_block *sb, aufs_bindex_t br_id); int au_cpup_xattr(struct dentry *h_dst, struct dentry *h_src, int ignore_flags, unsigned int verbose); ssize_t aufs_listxattr(struct dentry *dentry, char *list, size_t size); -ssize_t aufs_getxattr(struct dentry *dentry, const char *name, void *value, - size_t size); -int aufs_setxattr(struct dentry *dentry, const char *name, const void *value, - size_t size, int flags); +ssize_t aufs_getxattr(struct dentry *dentry, struct inode *inode, + const char *name, void *value, size_t size); +int aufs_setxattr(struct dentry *dentry, struct inode *inode, const char *name, + const void *value, size_t size, int flags); int aufs_removexattr(struct dentry *dentry, const char *name); /* void au_xattr_init(struct super_block *sb); */ @@ -336,7 +341,8 @@ struct au_srxattr { } acl_set; } u; }; -ssize_t au_srxattr(struct dentry *dentry, struct au_srxattr *arg); +ssize_t au_srxattr(struct dentry *dentry, struct inode *inode, + struct au_srxattr *arg); #endif /* ---------------------------------------------------------------------- */ |