Re: [PATCH v3 2/2] libfs: drop redundant SB_I_NOEXEC/SB_I_NODEV in init_pseudo() callers
From: Jan Kara
Date: Tue Jun 09 2026 - 05:01:30 EST
On Wed 03-06-26 19:53:15, John Hubbard wrote:
> init_pseudo() now sets SB_I_NOEXEC and SB_I_NODEV by default, so the
> per-caller assignments are redundant. Drop them.
>
> Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@xxxxxxx>
Honza
> ---
> fs/aio.c | 1 -
> fs/anon_inodes.c | 2 --
> fs/nsfs.c | 1 -
> fs/pidfs.c | 2 --
> mm/secretmem.c | 2 --
> virt/kvm/guest_memfd.c | 2 --
> 6 files changed, 10 deletions(-)
>
> diff --git a/fs/aio.c b/fs/aio.c
> index 722476560848..f57fa21a2503 100644
> --- a/fs/aio.c
> +++ b/fs/aio.c
> @@ -318,7 +318,6 @@ static int aio_init_fs_context(struct fs_context *fc)
> pfc = init_pseudo(fc, AIO_RING_MAGIC);
> if (!pfc)
> return -ENOMEM;
> - fc->s_iflags |= SB_I_NOEXEC;
> pfc->ops = &aio_super_operations;
> return 0;
> }
> diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c
> index b8381c7fb636..a7b9b948e33d 100644
> --- a/fs/anon_inodes.c
> +++ b/fs/anon_inodes.c
> @@ -86,8 +86,6 @@ static int anon_inodefs_init_fs_context(struct fs_context *fc)
> struct pseudo_fs_context *ctx = init_pseudo(fc, ANON_INODE_FS_MAGIC);
> if (!ctx)
> return -ENOMEM;
> - fc->s_iflags |= SB_I_NOEXEC;
> - fc->s_iflags |= SB_I_NODEV;
> ctx->dops = &anon_inodefs_dentry_operations;
> return 0;
> }
> diff --git a/fs/nsfs.c b/fs/nsfs.c
> index 160018c4fb36..c3b6ae76594a 100644
> --- a/fs/nsfs.c
> +++ b/fs/nsfs.c
> @@ -664,7 +664,6 @@ static int nsfs_init_fs_context(struct fs_context *fc)
> struct pseudo_fs_context *ctx = init_pseudo(fc, NSFS_MAGIC);
> if (!ctx)
> return -ENOMEM;
> - fc->s_iflags |= SB_I_NOEXEC | SB_I_NODEV;
> ctx->s_d_flags |= DCACHE_DONTCACHE;
> ctx->ops = &nsfs_ops;
> ctx->eops = &nsfs_export_operations;
> diff --git a/fs/pidfs.c b/fs/pidfs.c
> index 1cce4f34a051..c363416766f1 100644
> --- a/fs/pidfs.c
> +++ b/fs/pidfs.c
> @@ -1115,8 +1115,6 @@ static int pidfs_init_fs_context(struct fs_context *fc)
> if (!ctx)
> return -ENOMEM;
>
> - fc->s_iflags |= SB_I_NOEXEC;
> - fc->s_iflags |= SB_I_NODEV;
> ctx->s_d_flags |= DCACHE_DONTCACHE;
> ctx->ops = &pidfs_sops;
> ctx->eops = &pidfs_export_operations;
> diff --git a/mm/secretmem.c b/mm/secretmem.c
> index 5f57ac4720d3..4877c262cb1f 100644
> --- a/mm/secretmem.c
> +++ b/mm/secretmem.c
> @@ -245,8 +245,6 @@ static int secretmem_init_fs_context(struct fs_context *fc)
> if (!ctx)
> return -ENOMEM;
>
> - fc->s_iflags |= SB_I_NOEXEC;
> - fc->s_iflags |= SB_I_NODEV;
> return 0;
> }
>
> diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c
> index 69c9d6d546b2..80f201035d77 100644
> --- a/virt/kvm/guest_memfd.c
> +++ b/virt/kvm/guest_memfd.c
> @@ -973,8 +973,6 @@ static int kvm_gmem_init_fs_context(struct fs_context *fc)
> if (!init_pseudo(fc, GUEST_MEMFD_MAGIC))
> return -ENOMEM;
>
> - fc->s_iflags |= SB_I_NOEXEC;
> - fc->s_iflags |= SB_I_NODEV;
> ctx = fc->fs_private;
> ctx->ops = &kvm_gmem_super_operations;
>
> --
> 2.54.0
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR