diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2016-03-28 20:52:35 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2016-03-28 20:52:35 -0400 |
commit | dfb0a0a1ae8d29fac2ec39450ba0895328e6ffb6 (patch) | |
tree | fea87dbcde8ab4838fa01556f2801951c13d227a | |
parent | Forward port 1500_XATTR_USER_PREFIX.patch to 4.5 kernels (diff) | |
download | linux-patches-dfb0a0a1.tar.gz linux-patches-dfb0a0a1.tar.bz2 linux-patches-dfb0a0a1.zip |
Update 1500_XATTR_USER_PREFIX.patch for the new struct syntax in 4.5 kernels4.5-2
-rw-r--r-- | 1500_XATTR_USER_PREFIX.patch | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/1500_XATTR_USER_PREFIX.patch b/1500_XATTR_USER_PREFIX.patch index cc15cd51..bacd0322 100644 --- a/1500_XATTR_USER_PREFIX.patch +++ b/1500_XATTR_USER_PREFIX.patch @@ -14,10 +14,10 @@ enabled for tmpfs. Users who do not enable xattrs will not have the XATTR_PAX flags preserved. diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h -index e4629b9..6958086 100644 +index 1590c49..5eab462 100644 --- a/include/uapi/linux/xattr.h +++ b/include/uapi/linux/xattr.h -@@ -63,5 +63,9 @@ +@@ -73,5 +73,9 @@ #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default" #define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT @@ -28,27 +28,42 @@ index e4629b9..6958086 100644 #endif /* _UAPI_LINUX_XATTR_H */ diff --git a/mm/shmem.c b/mm/shmem.c -index 1c44af7..f23bb1b 100644 +index 440e2a7..c377172 100644 --- a/mm/shmem.c +++ b/mm/shmem.c -@@ -2201,6 +2201,7 @@ static const struct xattr_handler *shmem_xattr_handlers[] = { - static int shmem_xattr_validate(const char *name) - { - struct { const char *prefix; size_t len; } arr[] = { -+ { XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN}, - { XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN }, - { XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN } - }; -@@ -2256,6 +2257,12 @@ static int shmem_setxattr(struct dentry *dentry, const char *name, - if (err) - return err; +@@ -2667,6 +2667,14 @@ static int shmem_xattr_handler_set(const struct xattr_handler *handler, + struct shmem_inode_info *info = SHMEM_I(d_inode(dentry)); + name = xattr_full_name(handler, name); ++ + if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) { + if (strcmp(name, XATTR_NAME_PAX_FLAGS)) + return -EOPNOTSUPP; + if (size > 8) + return -EINVAL; + } ++ return simple_xattr_set(&info->xattrs, name, value, size, flags); } +@@ -2682,6 +2690,12 @@ static const struct xattr_handler shmem_trusted_xattr_handler = { + .set = shmem_xattr_handler_set, + }; + ++static const struct xattr_handler shmem_user_xattr_handler = { ++ .prefix = XATTR_USER_PREFIX, ++ .get = shmem_xattr_handler_get, ++ .set = shmem_xattr_handler_set, ++}; ++ + static const struct xattr_handler *shmem_xattr_handlers[] = { + #ifdef CONFIG_TMPFS_POSIX_ACL + &posix_acl_access_xattr_handler, +@@ -2689,6 +2703,7 @@ static const struct xattr_handler *shmem_xattr_handlers[] = { + #endif + &shmem_security_xattr_handler, + &shmem_trusted_xattr_handler, ++ &shmem_user_xattr_handler, + NULL + }; + |