[PATCH] Add flags option to get xattr method paired to __vfs_getxattr

Mark Salyzyn salyzyn at android.com
Tue Aug 13 14:44:21 UTC 2019


On 8/13/19 5:48 AM, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
>
> The bot has tested the following trees: v5.2.8, v4.19.66, v4.14.138, v4.9.189, v4.4.189.
>
> v5.2.8: Build failed! Errors:
>      fs/afs/xattr.c:156:12: error: initialization of ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t,  int)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int,  int)’} from incompatible pointer type ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int)’} [-Werror=incompatible-pointer-types]
>      fs/afs/xattr.c:327:9: error: initialization of ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t,  int)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int,  int)’} from incompatible pointer type ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int)’} [-Werror=incompatible-pointer-types]
>      drivers/staging/erofs/xattr.c:492:9: error: initialization of ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t,  int)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int,  int)’} from incompatible pointer type ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int)’} [-Werror=incompatible-pointer-types]
>      drivers/staging/erofs/xattr.c:499:9: error: initialization of ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t,  int)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int,  int)’} from incompatible pointer type ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int)’} [-Werror=incompatible-pointer-types]
>      drivers/staging/erofs/xattr.c:506:9: error: initialization of ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t,  int)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int,  int)’} from incompatible pointer type ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t)’ {aka ‘int (*)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, long unsigned int)’} [-Werror=incompatible-pointer-types]
>
> v4.19.66: Failed to apply! Possible dependencies:
>      05895219627c ("kernfs: clean up struct kernfs_iattrs")
>      0ac6075a32fc ("kernfs: use simple_xattrs for security attributes")
>      1537ad15c9c5 ("kernfs: fix xattr name handling in LSM helpers")
>      426dcd4b600f ("hexagon: switch to NO_BOOTMEM")
>      57c8a661d95d ("mm: remove include/linux/bootmem.h")
>      6471f52af786 ("alpha: switch to NO_BOOTMEM")
>      b230d5aba2d1 ("LSM: add new hook for kernfs node initialization")
>      bcec54bf3118 ("mips: switch to NO_BOOTMEM")
>      d0c9c153b4bd ("kernfs: do not alloc iattrs in kernfs_xattr_get")
>      e0a9317d9004 ("hexagon: use generic dma_noncoherent_ops")
>      e262e32d6bde ("vfs: Suppress MS_* flag defs within the kernel unless explicitly enabled")
>      ec882da5cda9 ("selinux: implement the kernfs_init_security hook")
>      f406f222d4b2 ("hexagon: implement the sync_sg_for_device DMA operation")
>
> v4.14.138: Failed to apply! Possible dependencies:
>      05895219627c ("kernfs: clean up struct kernfs_iattrs")
>      067cae47771c ("bpf: Use char in prog and map name")
>      0ac6075a32fc ("kernfs: use simple_xattrs for security attributes")
>      1537ad15c9c5 ("kernfs: fix xattr name handling in LSM helpers")
>      488dee96bb62 ("kernfs: allow creating kernfs objects with arbitrary uid/gid")
>      5cf9dd55a0ec ("afs: Prospectively look up extra files when doing a single lookup")
>      88cda1c9da02 ("bpf: libbpf: Provide basic API support to specify BPF obj name")
>      95582b008388 ("vfs: change inode times to use struct timespec64")
>      ad5b177bd73f ("bpf: Add map_name to bpf_map_info")
>      afdb09c720b6 ("security: bpf: Add LSM hooks for bpf object related syscall")
>      b230d5aba2d1 ("LSM: add new hook for kernfs node initialization")
>      cb4d2b3f03d8 ("bpf: Add name, load_time, uid and map_ids to bpf_prog_info")
>      d0c9c153b4bd ("kernfs: do not alloc iattrs in kernfs_xattr_get")
>      dd9fbcb8e103 ("afs: Rearrange status mapping")
>      df0ce17331e2 ("security: convert security hooks to use hlist")
>      e45b2546e23c ("fuse: Ensure posix acls are translated outside of init_user_ns")
>
> v4.9.189: Failed to apply! Possible dependencies:
>      1537ad15c9c5 ("kernfs: fix xattr name handling in LSM helpers")
>      4eb5aaa3af8a ("sched/headers: Prepare for new header dependencies before moving code to <linux/sched/autogroup.h>")
>      4f17722c7256 ("sched/headers: Prepare for new header dependencies before moving code to <linux/sched/loadavg.h>")
>      5eca1c10cbaa ("sched/headers: Clean up <linux/sched.h>")
>      6e84f31522f9 ("sched/headers: Prepare for new header dependencies before moving code to <linux/sched/mm.h>")
>      91b467e0a3f5 ("afs: Make afs_readpages() fetch data in bulk")
>      944c74f472f9 ("afs: Distinguish mountpoints from symlinks by file mode alone")
>      acb04058de49 ("sched/clock: Fix hotplug crash")
>      ae7e81c077d6 ("sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h>")
>      b230d5aba2d1 ("LSM: add new hook for kernfs node initialization")
>      b5a062344419 ("kernfs: Declare two local data structures static")
>      d3e3b7eac886 ("afs: Add metadata xattrs")
>      df0ce17331e2 ("security: convert security hooks to use hlist")
>      e45b2546e23c ("fuse: Ensure posix acls are translated outside of init_user_ns")
>      e4e55b47ed9a ("LSM: Revive security_task_alloc() hook and per "struct task_struct" security blob.")
>      e601757102cf ("sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h>")
>      ea8b1c4a6019 ("drivers: psci: PSCI checker module")
>      edd3ba94c4e5 ("afs: Convert to separately allocated bdi")
>      ee6a3d19f15b ("sched/headers: Remove the <linux/topology.h> include from <linux/sched.h>")
>      fd7712337ff0 ("sched/headers: Prepare to remove the <linux/gfp.h> include from <linux/sched.h>")
>
> v4.4.189: Failed to apply! Possible dependencies:
>      1182fca3bc00 ("Orangefs: kernel client part 5")
>      24c8d0804be0 ("Orangefs: Clean up pvfs2_devreq_read.")
>      274dcf55bd4a ("Orangefs: kernel client part 3")
>      2c590d5fb698 ("Orangefs: kernel client update 1.")
>      3c2fcfcb6858 ("orangefs: make wait_for_direct_io() take iov_iter")
>      4d1c44043b26 ("Orangefs: use iov_iter interface")
>      548049495cb4 ("Orangefs: fix some checkpatch.pl complaints that had creeped in.")
>      5c278228bbfe ("orangefs: explicitly pass the size to pvfs_bufmap_copy_to_iovec()")
>      5db11c21a929 ("Orangefs: kernel client part 2")
>      5f0e3c953fd9 ("orangefs: make postcopy_buffers() take iov_iter")
>      8092895f759e ("orangefs: validate the response in decode_dirents()")
>      84d02150dea7 ("Orangefs: sooth most sparse complaints")
>      88309aae3ddb ("Orangefs: fix dir_emit code in pvfs2_readdir.")
>      894ac432b48b ("Orangefs: Clean up error decoding.")
>      8bb8aefd5afb ("OrangeFS: Change almost all instances of the string PVFS2 to OrangeFS.")
>      9172abbcd371 ("btrfs: Use xattr handler infrastructure")
>      9be68b08719c ("orangefs: get rid of dec_string and enc_string")
>      a5c126a52269 ("orangefs: make precopy_buffers() take iov_iter")
>      b296821a7c42 ("xattr_handler: pass dentry and inode as separate arguments of ->get()")
>      ef4af94edcf8 ("orangefs: switch decode_dirents() to use of kcalloc()")
>      f0ed4418d46d ("Orangefs: Remove upcall trailers which are not used.")
>      f7ab093f74bf ("Orangefs: kernel client part 1")
>      f7be4ee07fb7 ("Orangefs: kernel client part 4")
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
>
> --
> Thanks,
> Sasha

Wait for upstream of course.

Given the conflicts, I can provide back-ports once upstream upon 
request. It should be noted that the backports should be mechanical and 
trivial (skip non-existent filesystems like orangfs, drop separate inode 
argument that did not exist in earlier kernels).

I will submit the next spin (missed a few filesystems, build errors) 
with references to the requested stable trees again, so noise will continue.

Sincerely -- Mark Salyzyn




More information about the Linux-security-module-archive mailing list