summaryrefslogtreecommitdiff
path: root/fs/aufs/inode.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/aufs/inode.h')
-rw-r--r--fs/aufs/inode.h22
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
/* ---------------------------------------------------------------------- */