Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

switch xattr_handler->set() to passing dentry and inode separately

preparation for similar switch in ->setxattr() (see the next commit for
rationale).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 59301226 00235411

+156 -135
+3 -3
fs/9p/acl.c
··· 239 239 } 240 240 241 241 static int v9fs_xattr_set_acl(const struct xattr_handler *handler, 242 - struct dentry *dentry, const char *name, 243 - const void *value, size_t size, int flags) 242 + struct dentry *dentry, struct inode *inode, 243 + const char *name, const void *value, 244 + size_t size, int flags) 244 245 { 245 246 int retval; 246 247 struct posix_acl *acl; 247 248 struct v9fs_session_info *v9ses; 248 - struct inode *inode = d_inode(dentry); 249 249 250 250 v9ses = v9fs_dentry2v9ses(dentry); 251 251 /*
+3 -2
fs/9p/xattr.c
··· 147 147 } 148 148 149 149 static int v9fs_xattr_handler_set(const struct xattr_handler *handler, 150 - struct dentry *dentry, const char *name, 151 - const void *value, size_t size, int flags) 150 + struct dentry *dentry, struct inode *inode, 151 + const char *name, const void *value, 152 + size_t size, int flags) 152 153 { 153 154 const char *full_name = xattr_full_name(handler, name); 154 155
+5 -7
fs/btrfs/xattr.c
··· 380 380 } 381 381 382 382 static int btrfs_xattr_handler_set(const struct xattr_handler *handler, 383 - struct dentry *dentry, const char *name, 384 - const void *buffer, size_t size, 385 - int flags) 383 + struct dentry *unused, struct inode *inode, 384 + const char *name, const void *buffer, 385 + size_t size, int flags) 386 386 { 387 - struct inode *inode = d_inode(dentry); 388 - 389 387 name = xattr_full_name(handler, name); 390 388 return __btrfs_setxattr(NULL, inode, name, buffer, size, flags); 391 389 } 392 390 393 391 static int btrfs_xattr_handler_set_prop(const struct xattr_handler *handler, 394 - struct dentry *dentry, 392 + struct dentry *unused, struct inode *inode, 395 393 const char *name, const void *value, 396 394 size_t size, int flags) 397 395 { 398 396 name = xattr_full_name(handler, name); 399 - return btrfs_set_prop(d_inode(dentry), name, value, size, flags); 397 + return btrfs_set_prop(inode, name, value, size, flags); 400 398 } 401 399 402 400 static const struct xattr_handler btrfs_security_xattr_handler = {
+4 -3
fs/ceph/xattr.c
··· 1051 1051 } 1052 1052 1053 1053 static int ceph_set_xattr_handler(const struct xattr_handler *handler, 1054 - struct dentry *dentry, const char *name, 1055 - const void *value, size_t size, int flags) 1054 + struct dentry *unused, struct inode *inode, 1055 + const char *name, const void *value, 1056 + size_t size, int flags) 1056 1057 { 1057 1058 if (!ceph_is_valid_xattr(name)) 1058 1059 return -EOPNOTSUPP; 1059 - return __ceph_setxattr(d_inode(dentry), name, value, size, flags); 1060 + return __ceph_setxattr(inode, name, value, size, flags); 1060 1061 } 1061 1062 1062 1063 const struct xattr_handler ceph_other_xattr_handler = {
+5 -4
fs/cifs/xattr.c
··· 39 39 enum { XATTR_USER, XATTR_CIFS_ACL, XATTR_ACL_ACCESS, XATTR_ACL_DEFAULT }; 40 40 41 41 static int cifs_xattr_set(const struct xattr_handler *handler, 42 - struct dentry *dentry, const char *name, 43 - const void *value, size_t size, int flags) 42 + struct dentry *dentry, struct inode *inode, 43 + const char *name, const void *value, 44 + size_t size, int flags) 44 45 { 45 46 int rc = -EOPNOTSUPP; 46 47 unsigned int xid; ··· 100 99 if (value && 101 100 pTcon->ses->server->ops->set_acl) 102 101 rc = pTcon->ses->server->ops->set_acl(pacl, 103 - size, d_inode(dentry), 102 + size, inode, 104 103 full_path, CIFS_ACL_DACL); 105 104 else 106 105 rc = -EOPNOTSUPP; 107 106 if (rc == 0) /* force revalidate of the inode */ 108 - CIFS_I(d_inode(dentry))->time = 0; 107 + CIFS_I(inode)->time = 0; 109 108 kfree(pacl); 110 109 } 111 110 #endif /* CONFIG_CIFS_ACL */
+4 -3
fs/ext2/xattr_security.c
··· 18 18 19 19 static int 20 20 ext2_xattr_security_set(const struct xattr_handler *handler, 21 - struct dentry *dentry, const char *name, 22 - const void *value, size_t size, int flags) 21 + struct dentry *unused, struct inode *inode, 22 + const char *name, const void *value, 23 + size_t size, int flags) 23 24 { 24 - return ext2_xattr_set(d_inode(dentry), EXT2_XATTR_INDEX_SECURITY, name, 25 + return ext2_xattr_set(inode, EXT2_XATTR_INDEX_SECURITY, name, 25 26 value, size, flags); 26 27 } 27 28
+4 -3
fs/ext2/xattr_trusted.c
··· 25 25 26 26 static int 27 27 ext2_xattr_trusted_set(const struct xattr_handler *handler, 28 - struct dentry *dentry, const char *name, 29 - const void *value, size_t size, int flags) 28 + struct dentry *unused, struct inode *inode, 29 + const char *name, const void *value, 30 + size_t size, int flags) 30 31 { 31 - return ext2_xattr_set(d_inode(dentry), EXT2_XATTR_INDEX_TRUSTED, name, 32 + return ext2_xattr_set(inode, EXT2_XATTR_INDEX_TRUSTED, name, 32 33 value, size, flags); 33 34 } 34 35
+5 -4
fs/ext2/xattr_user.c
··· 29 29 30 30 static int 31 31 ext2_xattr_user_set(const struct xattr_handler *handler, 32 - struct dentry *dentry, const char *name, 33 - const void *value, size_t size, int flags) 32 + struct dentry *unused, struct inode *inode, 33 + const char *name, const void *value, 34 + size_t size, int flags) 34 35 { 35 - if (!test_opt(dentry->d_sb, XATTR_USER)) 36 + if (!test_opt(inode->i_sb, XATTR_USER)) 36 37 return -EOPNOTSUPP; 37 38 38 - return ext2_xattr_set(d_inode(dentry), EXT2_XATTR_INDEX_USER, 39 + return ext2_xattr_set(inode, EXT2_XATTR_INDEX_USER, 39 40 name, value, size, flags); 40 41 } 41 42
+4 -3
fs/ext4/xattr_security.c
··· 22 22 23 23 static int 24 24 ext4_xattr_security_set(const struct xattr_handler *handler, 25 - struct dentry *dentry, const char *name, 26 - const void *value, size_t size, int flags) 25 + struct dentry *unused, struct inode *inode, 26 + const char *name, const void *value, 27 + size_t size, int flags) 27 28 { 28 - return ext4_xattr_set(d_inode(dentry), EXT4_XATTR_INDEX_SECURITY, 29 + return ext4_xattr_set(inode, EXT4_XATTR_INDEX_SECURITY, 29 30 name, value, size, flags); 30 31 } 31 32
+4 -3
fs/ext4/xattr_trusted.c
··· 29 29 30 30 static int 31 31 ext4_xattr_trusted_set(const struct xattr_handler *handler, 32 - struct dentry *dentry, const char *name, 33 - const void *value, size_t size, int flags) 32 + struct dentry *unused, struct inode *inode, 33 + const char *name, const void *value, 34 + size_t size, int flags) 34 35 { 35 - return ext4_xattr_set(d_inode(dentry), EXT4_XATTR_INDEX_TRUSTED, 36 + return ext4_xattr_set(inode, EXT4_XATTR_INDEX_TRUSTED, 36 37 name, value, size, flags); 37 38 } 38 39
+5 -4
fs/ext4/xattr_user.c
··· 30 30 31 31 static int 32 32 ext4_xattr_user_set(const struct xattr_handler *handler, 33 - struct dentry *dentry, const char *name, 34 - const void *value, size_t size, int flags) 33 + struct dentry *unused, struct inode *inode, 34 + const char *name, const void *value, 35 + size_t size, int flags) 35 36 { 36 - if (!test_opt(dentry->d_sb, XATTR_USER)) 37 + if (!test_opt(inode->i_sb, XATTR_USER)) 37 38 return -EOPNOTSUPP; 38 - return ext4_xattr_set(d_inode(dentry), EXT4_XATTR_INDEX_USER, 39 + return ext4_xattr_set(inode, EXT4_XATTR_INDEX_USER, 39 40 name, value, size, flags); 40 41 } 41 42
+6 -6
fs/f2fs/xattr.c
··· 50 50 } 51 51 52 52 static int f2fs_xattr_generic_set(const struct xattr_handler *handler, 53 - struct dentry *dentry, const char *name, const void *value, 53 + struct dentry *unused, struct inode *inode, 54 + const char *name, const void *value, 54 55 size_t size, int flags) 55 56 { 56 - struct f2fs_sb_info *sbi = F2FS_SB(dentry->d_sb); 57 + struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); 57 58 58 59 switch (handler->flags) { 59 60 case F2FS_XATTR_INDEX_USER: ··· 70 69 default: 71 70 return -EINVAL; 72 71 } 73 - return f2fs_setxattr(d_inode(dentry), handler->flags, name, 72 + return f2fs_setxattr(inode, handler->flags, name, 74 73 value, size, NULL, flags); 75 74 } 76 75 ··· 96 95 } 97 96 98 97 static int f2fs_xattr_advise_set(const struct xattr_handler *handler, 99 - struct dentry *dentry, const char *name, const void *value, 98 + struct dentry *unused, struct inode *inode, 99 + const char *name, const void *value, 100 100 size_t size, int flags) 101 101 { 102 - struct inode *inode = d_inode(dentry); 103 - 104 102 if (!inode_owner_or_capable(inode)) 105 103 return -EPERM; 106 104 if (value == NULL)
+3 -3
fs/gfs2/xattr.c
··· 1251 1251 } 1252 1252 1253 1253 static int gfs2_xattr_set(const struct xattr_handler *handler, 1254 - struct dentry *dentry, const char *name, 1255 - const void *value, size_t size, int flags) 1254 + struct dentry *unused, struct inode *inode, 1255 + const char *name, const void *value, 1256 + size_t size, int flags) 1256 1257 { 1257 - struct inode *inode = d_inode(dentry); 1258 1258 struct gfs2_inode *ip = GFS2_I(inode); 1259 1259 struct gfs2_holder gh; 1260 1260 int ret;
+6 -6
fs/hfsplus/xattr.c
··· 424 424 return len; 425 425 } 426 426 427 - int hfsplus_setxattr(struct dentry *dentry, const char *name, 427 + int hfsplus_setxattr(struct inode *inode, const char *name, 428 428 const void *value, size_t size, int flags, 429 429 const char *prefix, size_t prefixlen) 430 430 { ··· 437 437 return -ENOMEM; 438 438 strcpy(xattr_name, prefix); 439 439 strcpy(xattr_name + prefixlen, name); 440 - res = __hfsplus_setxattr(d_inode(dentry), xattr_name, value, size, 441 - flags); 440 + res = __hfsplus_setxattr(inode, xattr_name, value, size, flags); 442 441 kfree(xattr_name); 443 442 return res; 444 443 } ··· 863 864 } 864 865 865 866 static int hfsplus_osx_setxattr(const struct xattr_handler *handler, 866 - struct dentry *dentry, const char *name, 867 - const void *buffer, size_t size, int flags) 867 + struct dentry *unused, struct inode *inode, 868 + const char *name, const void *buffer, 869 + size_t size, int flags) 868 870 { 869 871 /* 870 872 * Don't allow setting properly prefixed attributes ··· 880 880 * creates), so we pass the name through unmodified (after 881 881 * ensuring it doesn't conflict with another namespace). 882 882 */ 883 - return __hfsplus_setxattr(d_inode(dentry), name, buffer, size, flags); 883 + return __hfsplus_setxattr(inode, name, buffer, size, flags); 884 884 } 885 885 886 886 const struct xattr_handler hfsplus_xattr_osx_handler = {
+1 -1
fs/hfsplus/xattr.h
··· 21 21 int __hfsplus_setxattr(struct inode *inode, const char *name, 22 22 const void *value, size_t size, int flags); 23 23 24 - int hfsplus_setxattr(struct dentry *dentry, const char *name, 24 + int hfsplus_setxattr(struct inode *inode, const char *name, 25 25 const void *value, size_t size, int flags, 26 26 const char *prefix, size_t prefixlen); 27 27
+4 -3
fs/hfsplus/xattr_security.c
··· 23 23 } 24 24 25 25 static int hfsplus_security_setxattr(const struct xattr_handler *handler, 26 - struct dentry *dentry, const char *name, 27 - const void *buffer, size_t size, int flags) 26 + struct dentry *unused, struct inode *inode, 27 + const char *name, const void *buffer, 28 + size_t size, int flags) 28 29 { 29 - return hfsplus_setxattr(dentry, name, buffer, size, flags, 30 + return hfsplus_setxattr(inode, name, buffer, size, flags, 30 31 XATTR_SECURITY_PREFIX, 31 32 XATTR_SECURITY_PREFIX_LEN); 32 33 }
+4 -3
fs/hfsplus/xattr_trusted.c
··· 21 21 } 22 22 23 23 static int hfsplus_trusted_setxattr(const struct xattr_handler *handler, 24 - struct dentry *dentry, const char *name, 25 - const void *buffer, size_t size, int flags) 24 + struct dentry *unused, struct inode *inode, 25 + const char *name, const void *buffer, 26 + size_t size, int flags) 26 27 { 27 - return hfsplus_setxattr(dentry, name, buffer, size, flags, 28 + return hfsplus_setxattr(inode, name, buffer, size, flags, 28 29 XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN); 29 30 } 30 31
+4 -3
fs/hfsplus/xattr_user.c
··· 21 21 } 22 22 23 23 static int hfsplus_user_setxattr(const struct xattr_handler *handler, 24 - struct dentry *dentry, const char *name, 25 - const void *buffer, size_t size, int flags) 24 + struct dentry *unused, struct inode *inode, 25 + const char *name, const void *buffer, 26 + size_t size, int flags) 26 27 { 27 - return hfsplus_setxattr(dentry, name, buffer, size, flags, 28 + return hfsplus_setxattr(inode, name, buffer, size, flags, 28 29 XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN); 29 30 } 30 31
+4 -3
fs/jffs2/security.c
··· 57 57 } 58 58 59 59 static int jffs2_security_setxattr(const struct xattr_handler *handler, 60 - struct dentry *dentry, const char *name, 61 - const void *buffer, size_t size, int flags) 60 + struct dentry *unused, struct inode *inode, 61 + const char *name, const void *buffer, 62 + size_t size, int flags) 62 63 { 63 - return do_jffs2_setxattr(d_inode(dentry), JFFS2_XPREFIX_SECURITY, 64 + return do_jffs2_setxattr(inode, JFFS2_XPREFIX_SECURITY, 64 65 name, buffer, size, flags); 65 66 } 66 67
+4 -3
fs/jffs2/xattr_trusted.c
··· 25 25 } 26 26 27 27 static int jffs2_trusted_setxattr(const struct xattr_handler *handler, 28 - struct dentry *dentry, const char *name, 29 - const void *buffer, size_t size, int flags) 28 + struct dentry *unused, struct inode *inode, 29 + const char *name, const void *buffer, 30 + size_t size, int flags) 30 31 { 31 - return do_jffs2_setxattr(d_inode(dentry), JFFS2_XPREFIX_TRUSTED, 32 + return do_jffs2_setxattr(inode, JFFS2_XPREFIX_TRUSTED, 32 33 name, buffer, size, flags); 33 34 } 34 35
+4 -3
fs/jffs2/xattr_user.c
··· 25 25 } 26 26 27 27 static int jffs2_user_setxattr(const struct xattr_handler *handler, 28 - struct dentry *dentry, const char *name, 29 - const void *buffer, size_t size, int flags) 28 + struct dentry *unused, struct inode *inode, 29 + const char *name, const void *buffer, 30 + size_t size, int flags) 30 31 { 31 - return do_jffs2_setxattr(d_inode(dentry), JFFS2_XPREFIX_USER, 32 + return do_jffs2_setxattr(inode, JFFS2_XPREFIX_USER, 32 33 name, buffer, size, flags); 33 34 } 34 35
+6 -8
fs/jfs/xattr.c
··· 943 943 } 944 944 945 945 static int jfs_xattr_set(const struct xattr_handler *handler, 946 - struct dentry *dentry, const char *name, 947 - const void *value, size_t size, int flags) 946 + struct dentry *unused, struct inode *inode, 947 + const char *name, const void *value, 948 + size_t size, int flags) 948 949 { 949 - struct inode *inode = d_inode(dentry); 950 - 951 950 name = xattr_full_name(handler, name); 952 951 return __jfs_xattr_set(inode, name, value, size, flags); 953 952 } ··· 961 962 } 962 963 963 964 static int jfs_xattr_set_os2(const struct xattr_handler *handler, 964 - struct dentry *dentry, const char *name, 965 - const void *value, size_t size, int flags) 965 + struct dentry *unused, struct inode *inode, 966 + const char *name, const void *value, 967 + size_t size, int flags) 966 968 { 967 - struct inode *inode = d_inode(dentry); 968 - 969 969 if (is_known_namespace(name)) 970 970 return -EOPNOTSUPP; 971 971 return __jfs_xattr_set(inode, name, value, size, flags);
+9 -10
fs/nfs/nfs4proc.c
··· 4993 4993 } 4994 4994 4995 4995 static int 4996 - nfs4_set_security_label(struct dentry *dentry, const void *buf, size_t buflen) 4996 + nfs4_set_security_label(struct inode *inode, const void *buf, size_t buflen) 4997 4997 { 4998 4998 struct nfs4_label ilabel, *olabel = NULL; 4999 4999 struct nfs_fattr fattr; 5000 5000 struct rpc_cred *cred; 5001 - struct inode *inode = d_inode(dentry); 5002 5001 int status; 5003 5002 5004 5003 if (!nfs_server_capable(inode, NFS_CAP_SECURITY_LABEL)) ··· 6254 6255 #define XATTR_NAME_NFSV4_ACL "system.nfs4_acl" 6255 6256 6256 6257 static int nfs4_xattr_set_nfs4_acl(const struct xattr_handler *handler, 6257 - struct dentry *dentry, const char *key, 6258 - const void *buf, size_t buflen, 6259 - int flags) 6258 + struct dentry *unused, struct inode *inode, 6259 + const char *key, const void *buf, 6260 + size_t buflen, int flags) 6260 6261 { 6261 - return nfs4_proc_set_acl(d_inode(dentry), buf, buflen); 6262 + return nfs4_proc_set_acl(inode, buf, buflen); 6262 6263 } 6263 6264 6264 6265 static int nfs4_xattr_get_nfs4_acl(const struct xattr_handler *handler, ··· 6276 6277 #ifdef CONFIG_NFS_V4_SECURITY_LABEL 6277 6278 6278 6279 static int nfs4_xattr_set_nfs4_label(const struct xattr_handler *handler, 6279 - struct dentry *dentry, const char *key, 6280 - const void *buf, size_t buflen, 6281 - int flags) 6280 + struct dentry *unused, struct inode *inode, 6281 + const char *key, const void *buf, 6282 + size_t buflen, int flags) 6282 6283 { 6283 6284 if (security_ismaclabel(key)) 6284 - return nfs4_set_security_label(dentry, buf, buflen); 6285 + return nfs4_set_security_label(inode, buf, buflen); 6285 6286 6286 6287 return -EOPNOTSUPP; 6287 6288 }
+13 -10
fs/ocfs2/xattr.c
··· 7254 7254 } 7255 7255 7256 7256 static int ocfs2_xattr_security_set(const struct xattr_handler *handler, 7257 - struct dentry *dentry, const char *name, 7258 - const void *value, size_t size, int flags) 7257 + struct dentry *unused, struct inode *inode, 7258 + const char *name, const void *value, 7259 + size_t size, int flags) 7259 7260 { 7260 - return ocfs2_xattr_set(d_inode(dentry), OCFS2_XATTR_INDEX_SECURITY, 7261 + return ocfs2_xattr_set(inode, OCFS2_XATTR_INDEX_SECURITY, 7261 7262 name, value, size, flags); 7262 7263 } 7263 7264 ··· 7326 7325 } 7327 7326 7328 7327 static int ocfs2_xattr_trusted_set(const struct xattr_handler *handler, 7329 - struct dentry *dentry, const char *name, 7330 - const void *value, size_t size, int flags) 7328 + struct dentry *unused, struct inode *inode, 7329 + const char *name, const void *value, 7330 + size_t size, int flags) 7331 7331 { 7332 - return ocfs2_xattr_set(d_inode(dentry), OCFS2_XATTR_INDEX_TRUSTED, 7332 + return ocfs2_xattr_set(inode, OCFS2_XATTR_INDEX_TRUSTED, 7333 7333 name, value, size, flags); 7334 7334 } 7335 7335 ··· 7356 7354 } 7357 7355 7358 7356 static int ocfs2_xattr_user_set(const struct xattr_handler *handler, 7359 - struct dentry *dentry, const char *name, 7360 - const void *value, size_t size, int flags) 7357 + struct dentry *unused, struct inode *inode, 7358 + const char *name, const void *value, 7359 + size_t size, int flags) 7361 7360 { 7362 - struct ocfs2_super *osb = OCFS2_SB(dentry->d_sb); 7361 + struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); 7363 7362 7364 7363 if (osb->s_mount_opt & OCFS2_MOUNT_NOUSERXATTR) 7365 7364 return -EOPNOTSUPP; 7366 7365 7367 - return ocfs2_xattr_set(d_inode(dentry), OCFS2_XATTR_INDEX_USER, 7366 + return ocfs2_xattr_set(inode, OCFS2_XATTR_INDEX_USER, 7368 7367 name, value, size, flags); 7369 7368 } 7370 7369
+6 -4
fs/orangefs/xattr.c
··· 448 448 } 449 449 450 450 static int orangefs_xattr_set_default(const struct xattr_handler *handler, 451 - struct dentry *dentry, 451 + struct dentry *unused, 452 + struct inode *inode, 452 453 const char *name, 453 454 const void *buffer, 454 455 size_t size, 455 456 int flags) 456 457 { 457 - return orangefs_inode_setxattr(dentry->d_inode, 458 + return orangefs_inode_setxattr(inode, 458 459 ORANGEFS_XATTR_NAME_DEFAULT_PREFIX, 459 460 name, 460 461 buffer, ··· 479 478 } 480 479 481 480 static int orangefs_xattr_set_trusted(const struct xattr_handler *handler, 482 - struct dentry *dentry, 481 + struct dentry *unused, 482 + struct inode *inode, 483 483 const char *name, 484 484 const void *buffer, 485 485 size_t size, 486 486 int flags) 487 487 { 488 - return orangefs_inode_setxattr(dentry->d_inode, 488 + return orangefs_inode_setxattr(inode, 489 489 ORANGEFS_XATTR_NAME_TRUSTED_PREFIX, 490 490 name, 491 491 buffer,
+3 -3
fs/posix_acl.c
··· 822 822 823 823 static int 824 824 posix_acl_xattr_set(const struct xattr_handler *handler, 825 - struct dentry *dentry, const char *name, 826 - const void *value, size_t size, int flags) 825 + struct dentry *unused, struct inode *inode, 826 + const char *name, const void *value, 827 + size_t size, int flags) 827 828 { 828 - struct inode *inode = d_backing_inode(dentry); 829 829 struct posix_acl *acl = NULL; 830 830 int ret; 831 831
+5 -4
fs/reiserfs/xattr_security.c
··· 20 20 } 21 21 22 22 static int 23 - security_set(const struct xattr_handler *handler, struct dentry *dentry, 24 - const char *name, const void *buffer, size_t size, int flags) 23 + security_set(const struct xattr_handler *handler, struct dentry *unused, 24 + struct inode *inode, const char *name, const void *buffer, 25 + size_t size, int flags) 25 26 { 26 - if (IS_PRIVATE(d_inode(dentry))) 27 + if (IS_PRIVATE(inode)) 27 28 return -EPERM; 28 29 29 - return reiserfs_xattr_set(d_inode(dentry), 30 + return reiserfs_xattr_set(inode, 30 31 xattr_full_name(handler, name), 31 32 buffer, size, flags); 32 33 }
+5 -4
fs/reiserfs/xattr_trusted.c
··· 19 19 } 20 20 21 21 static int 22 - trusted_set(const struct xattr_handler *handler, struct dentry *dentry, 23 - const char *name, const void *buffer, size_t size, int flags) 22 + trusted_set(const struct xattr_handler *handler, struct dentry *unused, 23 + struct inode *inode, const char *name, const void *buffer, 24 + size_t size, int flags) 24 25 { 25 - if (!capable(CAP_SYS_ADMIN) || IS_PRIVATE(d_inode(dentry))) 26 + if (!capable(CAP_SYS_ADMIN) || IS_PRIVATE(inode)) 26 27 return -EPERM; 27 28 28 - return reiserfs_xattr_set(d_inode(dentry), 29 + return reiserfs_xattr_set(inode, 29 30 xattr_full_name(handler, name), 30 31 buffer, size, flags); 31 32 }
+5 -4
fs/reiserfs/xattr_user.c
··· 17 17 } 18 18 19 19 static int 20 - user_set(const struct xattr_handler *handler, struct dentry *dentry, 21 - const char *name, const void *buffer, size_t size, int flags) 20 + user_set(const struct xattr_handler *handler, struct dentry *unused, 21 + struct inode *inode, const char *name, const void *buffer, 22 + size_t size, int flags) 22 23 { 23 - if (!reiserfs_xattrs_user(dentry->d_sb)) 24 + if (!reiserfs_xattrs_user(inode->i_sb)) 24 25 return -EOPNOTSUPP; 25 - return reiserfs_xattr_set(d_inode(dentry), 26 + return reiserfs_xattr_set(inode, 26 27 xattr_full_name(handler, name), 27 28 buffer, size, flags); 28 29 }
+3 -4
fs/ubifs/xattr.c
··· 579 579 } 580 580 581 581 static int ubifs_xattr_set(const struct xattr_handler *handler, 582 - struct dentry *dentry, const char *name, 583 - const void *value, size_t size, int flags) 582 + struct dentry *dentry, struct inode *inode, 583 + const char *name, const void *value, 584 + size_t size, int flags) 584 585 { 585 - struct inode *inode = d_inode(dentry); 586 - 587 586 dbg_gen("xattr '%s', host ino %lu ('%pd'), size %zd", 588 587 name, inode->i_ino, dentry, size); 589 588
+4 -2
fs/xattr.c
··· 754 754 handler = xattr_resolve_name(dentry->d_sb->s_xattr, &name); 755 755 if (IS_ERR(handler)) 756 756 return PTR_ERR(handler); 757 - return handler->set(handler, dentry, name, value, size, flags); 757 + return handler->set(handler, dentry, d_inode(dentry), name, value, 758 + size, flags); 758 759 } 759 760 760 761 /* ··· 770 769 handler = xattr_resolve_name(dentry->d_sb->s_xattr, &name); 771 770 if (IS_ERR(handler)) 772 771 return PTR_ERR(handler); 773 - return handler->set(handler, dentry, name, NULL, 0, XATTR_REPLACE); 772 + return handler->set(handler, dentry, d_inode(dentry), name, NULL, 773 + 0, XATTR_REPLACE); 774 774 } 775 775 776 776 EXPORT_SYMBOL(generic_getxattr);
+5 -4
fs/xfs/xfs_xattr.c
··· 74 74 } 75 75 76 76 static int 77 - xfs_xattr_set(const struct xattr_handler *handler, struct dentry *dentry, 78 - const char *name, const void *value, size_t size, int flags) 77 + xfs_xattr_set(const struct xattr_handler *handler, struct dentry *unused, 78 + struct inode *inode, const char *name, const void *value, 79 + size_t size, int flags) 79 80 { 80 81 int xflags = handler->flags; 81 - struct xfs_inode *ip = XFS_I(d_inode(dentry)); 82 + struct xfs_inode *ip = XFS_I(inode); 82 83 int error; 83 84 84 85 /* Convert Linux syscall to XFS internal ATTR flags */ ··· 93 92 error = xfs_attr_set(ip, (unsigned char *)name, 94 93 (void *)value, size, xflags); 95 94 if (!error) 96 - xfs_forget_acl(d_inode(dentry), name, xflags); 95 + xfs_forget_acl(inode, name, xflags); 97 96 98 97 return error; 99 98 }
+2 -2
include/linux/xattr.h
··· 33 33 struct inode *inode, const char *name, void *buffer, 34 34 size_t size); 35 35 int (*set)(const struct xattr_handler *, struct dentry *dentry, 36 - const char *name, const void *buffer, size_t size, 37 - int flags); 36 + struct inode *inode, const char *name, const void *buffer, 37 + size_t size, int flags); 38 38 }; 39 39 40 40 const char *xattr_full_name(const struct xattr_handler *, const char *);
+4 -3
mm/shmem.c
··· 2645 2645 } 2646 2646 2647 2647 static int shmem_xattr_handler_set(const struct xattr_handler *handler, 2648 - struct dentry *dentry, const char *name, 2649 - const void *value, size_t size, int flags) 2648 + struct dentry *unused, struct inode *inode, 2649 + const char *name, const void *value, 2650 + size_t size, int flags) 2650 2651 { 2651 - struct shmem_inode_info *info = SHMEM_I(d_inode(dentry)); 2652 + struct shmem_inode_info *info = SHMEM_I(inode); 2652 2653 2653 2654 name = xattr_full_name(handler, name); 2654 2655 return simple_xattr_set(&info->xattrs, name, value, size, flags);