On Sat, Sep 30, 2023 at 02:00:04AM -0300, Wedson Almeida Filho wrote: > From: Wedson Almeida Filho <walmeida@xxxxxxxxxxxxx> > > The 's_xattr' field of 'struct super_block' currently requires a mutable > table of 'struct xattr_handler' entries (although each handler itself is > const). However, no code in vfs actually modifies the tables. > > So this series changes the type of 's_xattr' to allow const tables, and > modifies existing file system to move their tables to .rodata. This is > desirable because these tables contain entries with function pointers in > them; moving them to .rodata makes it considerably less likely to be > modified accidentally or maliciously at runtime. > > I found this while writing Rust abstractions for vfs. Applied to the vfs.xattr branch of the vfs/vfs.git tree. Patches in the vfs.xattr branch should appear in linux-next soon. Please report any outstanding bugs that were missed during review in a new review to the original patch series allowing us to drop it. It's encouraged to provide Acked-bys and Reviewed-bys even though the patch has now been applied. If possible patch trailers will be updated. Note that commit hashes shown below are subject to change due to rebase, trailer updates or similar. If in doubt, please check the listed branch. tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git branch: vfs.xattr [01/29] xattr: make the xattr array itself const https://git.kernel.org/vfs/vfs/c/e346fb6d774a [02/29] ext4: move ext4_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/e60ac1283340 [03/29] 9p: move xattr-related structs to .rodata https://git.kernel.org/vfs/vfs/c/b6079dc9cb51 [04/29] afs: move afs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/f710c2e48135 [05/29] btrfs: move btrfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/8a25b4189896 [06/29] ceph: move ceph_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/10f9fbe9f25a [07/29] ecryptfs: move ecryptfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/f354ed981066 [08/29] erofs: move erofs_xattr_handlers and xattr_handler_map to .rodata https://git.kernel.org/vfs/vfs/c/3591f40e223c [09/29] ext2: move ext2_xattr_handlers and ext2_xattr_handler_map to .rodata https://git.kernel.org/vfs/vfs/c/ce78a1ec1c3b [10/29] f2fs: move f2fs_xattr_handlers and f2fs_xattr_handler_map to .rodata https://git.kernel.org/vfs/vfs/c/a1c0752c33d2 [11/29] fuse: move fuse_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/34271edb1878 [12/29] gfs2: move gfs2_xattr_handlers_max to .rodata https://git.kernel.org/vfs/vfs/c/89491fafa81c [13/29] hfs: move hfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/e27a45b65070 [14/29] hfsplus: move hfsplus_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/2c323f2c5650 [15/29] jffs2: move jffs2_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/13a75c3abcbe [16/29] jfs: move jfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/ea780283e2c0 [17/29] kernfs: move kernfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/ffb2e0650827 [18/29] nfs: move nfs4_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/f496647e3b09 [19/29] ntfs3: move ntfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/5bf1dd9441da [20/29] ocfs2: move ocfs2_xattr_handlers and ocfs2_xattr_handler_map to .rodata https://git.kernel.org/vfs/vfs/c/2cba9af99b3f [21/29] orangefs: move orangefs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/2e9440ac0716 [22/29] reiserfs: move reiserfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/c063254b7de8 [23/29] smb: move cifs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/e45679b0d2e4 [24/29] squashfs: move squashfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/8a2ae79c7db0 [25/29] ubifs: move ubifs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/582f1ebe32a9 [26/29] xfs: move xfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/6fca42a3b168 [27/29] overlayfs: move xattr tables to .rodata https://git.kernel.org/vfs/vfs/c/3f644c1cd7b5 [28/29] shmem: move shmem_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/2f8e5f98045e [29/29] net: move sockfs_xattr_handlers to .rodata https://git.kernel.org/vfs/vfs/c/dcff22588d9a