1
Add a struct vfsmount parameter to vfs_listxattr()
3
Signed-off-by: Tony Jones <tonyj@suse.de>
4
Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
7
===================================================================
10
@@ -144,18 +144,20 @@ vfs_getxattr(struct dentry *dentry, stru
11
EXPORT_SYMBOL_GPL(vfs_getxattr);
14
-vfs_listxattr(struct dentry *d, char *list, size_t size)
15
+vfs_listxattr(struct dentry *dentry, struct vfsmount *mnt, char *list,
18
+ struct inode *inode = dentry->d_inode;
21
- error = security_inode_listxattr(d);
22
+ error = security_inode_listxattr(dentry);
26
- if (d->d_inode->i_op && d->d_inode->i_op->listxattr) {
27
- error = d->d_inode->i_op->listxattr(d, list, size);
29
- error = security_inode_listsecurity(d->d_inode, list, size);
30
+ if (inode->i_op && inode->i_op->listxattr)
31
+ error = inode->i_op->listxattr(dentry, list, size);
33
+ error = security_inode_listsecurity(inode, list, size);
34
if (size && error > size)
37
@@ -362,7 +364,8 @@ sys_fgetxattr(int fd, char __user *name,
38
* Extended attribute LIST operations
41
-listxattr(struct dentry *d, char __user *list, size_t size)
42
+listxattr(struct dentry *dentry, struct vfsmount *mnt, char __user *list,
47
@@ -375,7 +378,7 @@ listxattr(struct dentry *d, char __user
51
- error = vfs_listxattr(d, klist, size);
52
+ error = vfs_listxattr(dentry, mnt, klist, size);
54
if (size && copy_to_user(list, klist, error))
56
@@ -397,7 +400,7 @@ sys_listxattr(char __user *path, char __
57
error = user_path_walk(path, &nd);
60
- error = listxattr(nd.dentry, list, size);
61
+ error = listxattr(nd.dentry, nd.mnt, list, size);
65
@@ -411,7 +414,7 @@ sys_llistxattr(char __user *path, char _
66
error = user_path_walk_link(path, &nd);
69
- error = listxattr(nd.dentry, list, size);
70
+ error = listxattr(nd.dentry, nd.mnt, list, size);
74
@@ -425,7 +428,7 @@ sys_flistxattr(int fd, char __user *list
78
- error = listxattr(f->f_path.dentry, list, size);
79
+ error = listxattr(f->f_path.dentry, f->f_path.mnt, list, size);
83
Index: b/include/linux/xattr.h
84
===================================================================
85
--- a/include/linux/xattr.h
86
+++ b/include/linux/xattr.h
87
@@ -48,7 +48,8 @@ struct xattr_handler {
89
ssize_t vfs_getxattr(struct dentry *, struct vfsmount *, char *, void *,
91
-ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
92
+ssize_t vfs_listxattr(struct dentry *d, struct vfsmount *, char *list,
94
int vfs_setxattr(struct dentry *, struct vfsmount *, char *, void *, size_t,
96
int vfs_removexattr(struct dentry *, char *);