On Tue 01-09-26 14:14:43, Christian Brauner wrote:
> Convert to const struct mnt_idmap.
> 
> A mount's idmapping is immutable. The only thing that is allowed to be
> modified afterwards is the reference count and that is hidden behind
> mnt_idmap_get() and mnt_idmap_put(). Everything else only ever reads
> from the idmapping. This is the same model that struct cred uses and the
> idmapping is also rather sensitive.
> 
> So make the idmap argument const wherever we can. The conversion is done
> from the bottom up so callers can continue to pass a non-const pointer
> to a const parameter until the conversion is finished.
> 
> No functional changes.
> 
> Signed-off-by: Christian Brauner (Amutable) <[email protected]>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <[email protected]>

                                                                Honza

> ---
>  Documentation/filesystems/locking.rst | 2 +-
>  Documentation/filesystems/vfs.rst     | 2 +-
>  fs/9p/vfs_inode.c                     | 2 +-
>  fs/9p/vfs_inode_dotl.c                | 4 ++--
>  fs/bad_inode.c                        | 2 +-
>  fs/btrfs/inode.c                      | 2 +-
>  fs/ceph/dir.c                         | 2 +-
>  fs/ecryptfs/inode.c                   | 2 +-
>  fs/ext2/namei.c                       | 2 +-
>  fs/ext4/namei.c                       | 2 +-
>  fs/f2fs/namei.c                       | 2 +-
>  fs/fuse/dir.c                         | 4 ++--
>  fs/gfs2/inode.c                       | 2 +-
>  fs/hfsplus/dir.c                      | 2 +-
>  fs/hostfs/hostfs_kern.c               | 2 +-
>  fs/hpfs/namei.c                       | 2 +-
>  fs/hugetlbfs/inode.c                  | 2 +-
>  fs/jffs2/dir.c                        | 4 ++--
>  fs/jfs/namei.c                        | 2 +-
>  fs/minix/namei.c                      | 2 +-
>  fs/nfs/dir.c                          | 2 +-
>  fs/nfs/internal.h                     | 2 +-
>  fs/nilfs2/namei.c                     | 2 +-
>  fs/ntfs/namei.c                       | 2 +-
>  fs/ntfs3/namei.c                      | 2 +-
>  fs/ocfs2/namei.c                      | 2 +-
>  fs/overlayfs/dir.c                    | 2 +-
>  fs/ramfs/inode.c                      | 2 +-
>  fs/smb/client/cifsfs.h                | 2 +-
>  fs/smb/client/dir.c                   | 2 +-
>  fs/ubifs/dir.c                        | 2 +-
>  fs/udf/namei.c                        | 2 +-
>  fs/ufs/namei.c                        | 2 +-
>  fs/xfs/xfs_iops.c                     | 2 +-
>  include/linux/fs.h                    | 2 +-
>  include/linux/lsm_hook_defs.h         | 2 +-
>  include/linux/security.h              | 4 ++--
>  mm/shmem.c                            | 4 ++--
>  security/integrity/evm/evm_main.c     | 2 +-
>  security/integrity/ima/ima_main.c     | 2 +-
>  security/security.c                   | 2 +-
>  41 files changed, 46 insertions(+), 46 deletions(-)
> 
> diff --git a/Documentation/filesystems/locking.rst 
> b/Documentation/filesystems/locking.rst
> index e4948ddc0a5f..1cfdad9286d5 100644
> --- a/Documentation/filesystems/locking.rst
> +++ b/Documentation/filesystems/locking.rst
> @@ -68,7 +68,7 @@ prototypes::
>       int (*symlink) (struct mnt_idmap *, struct inode *,struct dentry 
> *,const char *);
>       struct dentry *(*mkdir) (struct mnt_idmap *, struct inode *,struct 
> dentry *,umode_t);
>       int (*rmdir) (struct inode *,struct dentry *);
> -     int (*mknod) (struct mnt_idmap *, struct inode *,struct dentry 
> *,umode_t,dev_t);
> +     int (*mknod) (const struct mnt_idmap *, struct inode *,struct dentry 
> *,umode_t,dev_t);
>       int (*rename) (struct mnt_idmap *, struct inode *, struct dentry *,
>                       struct inode *, struct dentry *, unsigned int);
>       int (*readlink) (struct dentry *, char __user *,int);
> diff --git a/Documentation/filesystems/vfs.rst 
> b/Documentation/filesystems/vfs.rst
> index e960257ef14a..d7ab34e101eb 100644
> --- a/Documentation/filesystems/vfs.rst
> +++ b/Documentation/filesystems/vfs.rst
> @@ -422,7 +422,7 @@ As of kernel 2.6.22, the following members are defined:
>               int (*symlink) (struct mnt_idmap *, struct inode *,struct 
> dentry *,const char *);
>               struct dentry *(*mkdir) (struct mnt_idmap *, struct inode 
> *,struct dentry *,umode_t);
>               int (*rmdir) (struct inode *,struct dentry *);
> -             int (*mknod) (struct mnt_idmap *, struct inode *,struct dentry 
> *,umode_t,dev_t);
> +             int (*mknod) (const struct mnt_idmap *, struct inode *,struct 
> dentry *,umode_t,dev_t);
>               int (*rename) (struct mnt_idmap *, struct inode *, struct 
> dentry *,
>                              struct inode *, struct dentry *, unsigned int);
>               int (*readlink) (struct dentry *, char __user *,int);
> diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
> index 3829554ca369..81fb5f8ec7e9 100644
> --- a/fs/9p/vfs_inode.c
> +++ b/fs/9p/vfs_inode.c
> @@ -1304,7 +1304,7 @@ v9fs_vfs_link(struct dentry *old_dentry, struct inode 
> *dir,
>   */
>  
>  static int
> -v9fs_vfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +v9fs_vfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>              struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct v9fs_session_info *v9ses = v9fs_inode2v9ses(dir);
> diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c
> index 116b29e95f21..634c4f5665c3 100644
> --- a/fs/9p/vfs_inode_dotl.c
> +++ b/fs/9p/vfs_inode_dotl.c
> @@ -29,7 +29,7 @@
>  #include "acl.h"
>  
>  static int
> -v9fs_vfs_mknod_dotl(struct mnt_idmap *idmap, struct inode *dir,
> +v9fs_vfs_mknod_dotl(const struct mnt_idmap *idmap, struct inode *dir,
>                   struct dentry *dentry, umode_t omode, dev_t rdev);
>  
>  /**
> @@ -809,7 +809,7 @@ v9fs_vfs_link_dotl(struct dentry *old_dentry, struct 
> inode *dir,
>   *
>   */
>  static int
> -v9fs_vfs_mknod_dotl(struct mnt_idmap *idmap, struct inode *dir,
> +v9fs_vfs_mknod_dotl(const struct mnt_idmap *idmap, struct inode *dir,
>                   struct dentry *dentry, umode_t omode, dev_t rdev)
>  {
>       int err;
> diff --git a/fs/bad_inode.c b/fs/bad_inode.c
> index d8c0ce62cc63..9b7baf1367a6 100644
> --- a/fs/bad_inode.c
> +++ b/fs/bad_inode.c
> @@ -69,7 +69,7 @@ static int bad_inode_rmdir (struct inode *dir, struct 
> dentry *dentry)
>       return -EIO;
>  }
>  
> -static int bad_inode_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int bad_inode_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                          struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       return -EIO;
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 092057508ae9..32b5648fdf81 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -7004,7 +7004,7 @@ static int btrfs_create_common(struct inode *dir, 
> struct dentry *dentry,
>       return ret;
>  }
>  
> -static int btrfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int btrfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                      struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct inode *inode;
> diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
> index 2e5c0ccb1b34..0f3c54dc97c6 100644
> --- a/fs/ceph/dir.c
> +++ b/fs/ceph/dir.c
> @@ -921,7 +921,7 @@ int ceph_handle_notrace_create(struct inode *dir, struct 
> dentry *dentry)
>       return PTR_ERR(result);
>  }
>  
> -static int ceph_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int ceph_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                     struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(dir->i_sb);
> diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
> index bd1187661d6d..411aa024d4b8 100644
> --- a/fs/ecryptfs/inode.c
> +++ b/fs/ecryptfs/inode.c
> @@ -562,7 +562,7 @@ static int ecryptfs_rmdir(struct inode *dir, struct 
> dentry *dentry)
>  }
>  
>  static int
> -ecryptfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +ecryptfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>              struct dentry *dentry, umode_t mode, dev_t dev)
>  {
>       int rc;
> diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c
> index 108dc52cedfc..f175b59cccd7 100644
> --- a/fs/ext2/namei.c
> +++ b/fs/ext2/namei.c
> @@ -131,7 +131,7 @@ static int ext2_tmpfile(const struct mnt_idmap *idmap, 
> struct inode *dir,
>       return finish_open_simple(file, 0);
>  }
>  
> -static int ext2_mknod (struct mnt_idmap * idmap, struct inode * dir,
> +static int ext2_mknod (const struct mnt_idmap * idmap, struct inode * dir,
>       struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct inode * inode;
> diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
> index 0bff01fb052a..d7a58d82f320 100644
> --- a/fs/ext4/namei.c
> +++ b/fs/ext4/namei.c
> @@ -2847,7 +2847,7 @@ static int ext4_create(struct mnt_idmap *idmap, struct 
> inode *dir,
>       return err;
>  }
>  
> -static int ext4_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int ext4_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                     struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       handle_t *handle;
> diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> index 3adc2345a204..0773f64396f8 100644
> --- a/fs/f2fs/namei.c
> +++ b/fs/f2fs/namei.c
> @@ -810,7 +810,7 @@ static int f2fs_rmdir(struct inode *dir, struct dentry 
> *dentry)
>       return -ENOTEMPTY;
>  }
>  
> -static int f2fs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int f2fs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                     struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
> diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
> index 14dc9318cd57..3250598e06f2 100644
> --- a/fs/fuse/dir.c
> +++ b/fs/fuse/dir.c
> @@ -934,7 +934,7 @@ static int fuse_create_open(const struct mnt_idmap 
> *idmap, struct inode *dir,
>       return err;
>  }
>  
> -static int fuse_mknod(struct mnt_idmap *, struct inode *, struct dentry *,
> +static int fuse_mknod(const struct mnt_idmap *, struct inode *, struct 
> dentry *,
>                     umode_t, dev_t);
>  static int fuse_atomic_open(struct inode *dir, struct dentry *entry,
>                           struct file *file, unsigned flags,
> @@ -1069,7 +1069,7 @@ static int create_new_nondir(const struct mnt_idmap 
> *idmap, struct fuse_mount *f
>       return PTR_ERR(create_new_entry(idmap, fm, args, dir, entry, mode));
>  }
>  
> -static int fuse_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int fuse_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                     struct dentry *entry, umode_t mode, dev_t rdev)
>  {
>       struct fuse_mknod_in inarg;
> diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
> index 1b1d22abe1d4..733f74603eaf 100644
> --- a/fs/gfs2/inode.c
> +++ b/fs/gfs2/inode.c
> @@ -1363,7 +1363,7 @@ static struct dentry *gfs2_mkdir(struct mnt_idmap 
> *idmap, struct inode *dir,
>   *
>   */
>  
> -static int gfs2_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int gfs2_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                     struct dentry *dentry, umode_t mode, dev_t dev)
>  {
>       return gfs2_create_inode(dir, dentry, NULL, mode, dev, NULL, 0, 0);
> diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c
> index 51fcba2e6d40..7d31211cee97 100644
> --- a/fs/hfsplus/dir.c
> +++ b/fs/hfsplus/dir.c
> @@ -511,7 +511,7 @@ static int hfsplus_symlink(struct mnt_idmap *idmap, 
> struct inode *dir,
>       return res;
>  }
>  
> -static int hfsplus_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int hfsplus_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                        struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb);
> diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
> index 0d5c5f11f913..71d15396235a 100644
> --- a/fs/hostfs/hostfs_kern.c
> +++ b/fs/hostfs/hostfs_kern.c
> @@ -719,7 +719,7 @@ static int hostfs_rmdir(struct inode *ino, struct dentry 
> *dentry)
>       return err;
>  }
>  
> -static int hostfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int hostfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                       struct dentry *dentry, umode_t mode, dev_t dev)
>  {
>       struct inode *inode;
> diff --git a/fs/hpfs/namei.c b/fs/hpfs/namei.c
> index 9446f4038874..ed749e1684d2 100644
> --- a/fs/hpfs/namei.c
> +++ b/fs/hpfs/namei.c
> @@ -215,7 +215,7 @@ static int hpfs_create(struct mnt_idmap *idmap, struct 
> inode *dir,
>       return err;
>  }
>  
> -static int hpfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int hpfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                     struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       const unsigned char *name = dentry->d_name.name;
> diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
> index 8a07a3f18c05..0c9cb8d953ab 100644
> --- a/fs/hugetlbfs/inode.c
> +++ b/fs/hugetlbfs/inode.c
> @@ -954,7 +954,7 @@ static struct inode *hugetlbfs_get_inode(struct 
> super_block *sb,
>  /*
>   * File creation. Allocate an inode, and we're done..
>   */
> -static int hugetlbfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int hugetlbfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                          struct dentry *dentry, umode_t mode, dev_t dev)
>  {
>       struct inode *inode;
> diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c
> index 656c920864c5..6d4b26d625c7 100644
> --- a/fs/jffs2/dir.c
> +++ b/fs/jffs2/dir.c
> @@ -36,7 +36,7 @@ static int jffs2_symlink (struct mnt_idmap *, struct inode 
> *,
>  static struct dentry *jffs2_mkdir (struct mnt_idmap *, struct inode *,struct 
> dentry *,
>                                  umode_t);
>  static int jffs2_rmdir (struct inode *,struct dentry *);
> -static int jffs2_mknod (struct mnt_idmap *, struct inode *,struct dentry *,
> +static int jffs2_mknod (const struct mnt_idmap *, struct inode *,struct 
> dentry *,
>                       umode_t,dev_t);
>  static int jffs2_rename (struct mnt_idmap *, struct inode *,
>                        struct dentry *, struct inode *, struct dentry *,
> @@ -620,7 +620,7 @@ static int jffs2_rmdir (struct inode *dir_i, struct 
> dentry *dentry)
>       return ret;
>  }
>  
> -static int jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i,
> +static int jffs2_mknod (const struct mnt_idmap *idmap, struct inode *dir_i,
>                       struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct jffs2_inode_info *f, *dir_f;
> diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
> index 8a36c218f0f7..82a5dbdaf93d 100644
> --- a/fs/jfs/namei.c
> +++ b/fs/jfs/namei.c
> @@ -1355,7 +1355,7 @@ static int jfs_rename(struct mnt_idmap *idmap, struct 
> inode *old_dir,
>   *
>   * FUNCTION: Create a special file (device)
>   */
> -static int jfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int jfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                    struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct jfs_inode_info *jfs_ip;
> diff --git a/fs/minix/namei.c b/fs/minix/namei.c
> index 0575dea16a3b..57b3c2c5b688 100644
> --- a/fs/minix/namei.c
> +++ b/fs/minix/namei.c
> @@ -33,7 +33,7 @@ static struct dentry *minix_lookup(struct inode * dir, 
> struct dentry *dentry, un
>       return d_splice_alias(inode, dentry);
>  }
>  
> -static int minix_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int minix_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                      struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct inode *inode;
> diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
> index 7574bc2fb677..10c48672a79d 100644
> --- a/fs/nfs/dir.c
> +++ b/fs/nfs/dir.c
> @@ -2448,7 +2448,7 @@ EXPORT_SYMBOL_GPL(nfs_create);
>   * See comments for nfs_proc_create regarding failed operations.
>   */
>  int
> -nfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +nfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>         struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct iattr attr;
> diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
> index abc81f5ae578..ec37568d197b 100644
> --- a/fs/nfs/internal.h
> +++ b/fs/nfs/internal.h
> @@ -405,7 +405,7 @@ int nfs_unlink(struct inode *, struct dentry *);
>  int nfs_symlink(struct mnt_idmap *, struct inode *, struct dentry *,
>               const char *);
>  int nfs_link(struct dentry *, struct inode *, struct dentry *);
> -int nfs_mknod(struct mnt_idmap *, struct inode *, struct dentry *, umode_t,
> +int nfs_mknod(const struct mnt_idmap *, struct inode *, struct dentry *, 
> umode_t,
>             dev_t);
>  int nfs_rename(struct mnt_idmap *, struct inode *, struct dentry *,
>              struct inode *, struct dentry *, unsigned int);
> diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c
> index e037e0c6e31a..ea3df1d5ec29 100644
> --- a/fs/nilfs2/namei.c
> +++ b/fs/nilfs2/namei.c
> @@ -113,7 +113,7 @@ static int nilfs_create(struct mnt_idmap *idmap, struct 
> inode *dir,
>  }
>  
>  static int
> -nilfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +nilfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>           struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct inode *inode;
> diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c
> index e2cf1ab6935a..82da5f14efa4 100644
> --- a/fs/ntfs/namei.c
> +++ b/fs/ntfs/namei.c
> @@ -1447,7 +1447,7 @@ static int ntfs_symlink(struct mnt_idmap *idmap, struct 
> inode *dir,
>       return err;
>  }
>  
> -static int ntfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int ntfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>               struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct super_block *sb = dir->i_sb;
> diff --git a/fs/ntfs3/namei.c b/fs/ntfs3/namei.c
> index ec59bbabd3c5..dfafadcd8fda 100644
> --- a/fs/ntfs3/namei.c
> +++ b/fs/ntfs3/namei.c
> @@ -121,7 +121,7 @@ static int ntfs_create(struct mnt_idmap *idmap, struct 
> inode *dir,
>  /*
>   * ntfs_mknod - inode_operations::mknod
>   */
> -static int ntfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int ntfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                     struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       return ntfs_create_inode(idmap, dir, dentry, NULL, mode, rdev, NULL, 0,
> diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
> index e9c7774ccf91..6cd77f295939 100644
> --- a/fs/ocfs2/namei.c
> +++ b/fs/ocfs2/namei.c
> @@ -227,7 +227,7 @@ static void ocfs2_cleanup_add_entry_failure(struct 
> ocfs2_super *osb,
>       iput(inode);
>  }
>  
> -static int ocfs2_mknod(struct mnt_idmap *idmap,
> +static int ocfs2_mknod(const struct mnt_idmap *idmap,
>                      struct inode *dir,
>                      struct dentry *dentry,
>                      umode_t mode,
> diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
> index 4f3f1e2bafff..6d4b511dc3ca 100644
> --- a/fs/overlayfs/dir.c
> +++ b/fs/overlayfs/dir.c
> @@ -742,7 +742,7 @@ static struct dentry *ovl_mkdir(struct mnt_idmap *idmap, 
> struct inode *dir,
>       return ERR_PTR(ovl_create_object(idmap, dentry, (mode & 07777) | 
> S_IFDIR, 0, NULL));
>  }
>  
> -static int ovl_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int ovl_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                    struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       /* Don't allow creation of "whiteout" on overlay */
> diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c
> index fc9a79af4840..5b09860dc69b 100644
> --- a/fs/ramfs/inode.c
> +++ b/fs/ramfs/inode.c
> @@ -95,7 +95,7 @@ struct inode *ramfs_get_inode(struct super_block *sb,
>   */
>  /* SMP-safe */
>  static int
> -ramfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +ramfs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>           struct dentry *dentry, umode_t mode, dev_t dev)
>  {
>       struct inode * inode = ramfs_get_inode(dir->i_sb, dir, mode, dev);
> diff --git a/fs/smb/client/cifsfs.h b/fs/smb/client/cifsfs.h
> index 255f478d3a18..db7aebb8599e 100644
> --- a/fs/smb/client/cifsfs.h
> +++ b/fs/smb/client/cifsfs.h
> @@ -64,7 +64,7 @@ struct dentry *cifs_lookup(struct inode *parent_dir_inode,
>  int cifs_unlink(struct inode *dir, struct dentry *dentry);
>  int cifs_hardlink(struct dentry *old_file, struct inode *inode,
>                 struct dentry *direntry);
> -int cifs_mknod(struct mnt_idmap *idmap, struct inode *inode,
> +int cifs_mknod(const struct mnt_idmap *idmap, struct inode *inode,
>              struct dentry *direntry, umode_t mode, dev_t device_number);
>  struct dentry *cifs_mkdir(struct mnt_idmap *idmap, struct inode *inode,
>                         struct dentry *direntry, umode_t mode);
> diff --git a/fs/smb/client/dir.c b/fs/smb/client/dir.c
> index 56a3e1966257..95da43ad7c02 100644
> --- a/fs/smb/client/dir.c
> +++ b/fs/smb/client/dir.c
> @@ -696,7 +696,7 @@ int cifs_create(struct mnt_idmap *idmap, struct inode 
> *dir,
>       return rc;
>  }
>  
> -int cifs_mknod(struct mnt_idmap *idmap, struct inode *inode,
> +int cifs_mknod(const struct mnt_idmap *idmap, struct inode *inode,
>              struct dentry *direntry, umode_t mode, dev_t device_number)
>  {
>       int rc = -EPERM;
> diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
> index 0e1a4de9bb18..50068515f680 100644
> --- a/fs/ubifs/dir.c
> +++ b/fs/ubifs/dir.c
> @@ -1077,7 +1077,7 @@ static struct dentry *ubifs_mkdir(struct mnt_idmap 
> *idmap, struct inode *dir,
>       return ERR_PTR(err);
>  }
>  
> -static int ubifs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int ubifs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                      struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct inode *inode;
> diff --git a/fs/udf/namei.c b/fs/udf/namei.c
> index 8b5873b53324..4f7200e6046e 100644
> --- a/fs/udf/namei.c
> +++ b/fs/udf/namei.c
> @@ -403,7 +403,7 @@ static int udf_tmpfile(const struct mnt_idmap *idmap, 
> struct inode *dir,
>       return finish_open_simple(file, 0);
>  }
>  
> -static int udf_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int udf_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                    struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct inode *inode;
> diff --git a/fs/ufs/namei.c b/fs/ufs/namei.c
> index 6703f3bcf76f..a38975b3885e 100644
> --- a/fs/ufs/namei.c
> +++ b/fs/ufs/namei.c
> @@ -85,7 +85,7 @@ static int ufs_create (struct mnt_idmap * idmap,
>       return ufs_add_nondir(dentry, inode);
>  }
>  
> -static int ufs_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +static int ufs_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>                    struct dentry *dentry, umode_t mode, dev_t rdev)
>  {
>       struct inode *inode;
> diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
> index 06ca999d0927..13e57b0e7cae 100644
> --- a/fs/xfs/xfs_iops.c
> +++ b/fs/xfs/xfs_iops.c
> @@ -279,7 +279,7 @@ xfs_generic_create(
>  
>  STATIC int
>  xfs_vn_mknod(
> -     struct mnt_idmap        *idmap,
> +     const struct mnt_idmap  *idmap,
>       struct inode            *dir,
>       struct dentry           *dentry,
>       umode_t                 mode,
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 92161c224856..4ca59a110d17 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -2008,7 +2008,7 @@ struct inode_operations {
>       struct dentry *(*mkdir) (struct mnt_idmap *, struct inode *,
>                                struct dentry *, umode_t);
>       int (*rmdir) (struct inode *,struct dentry *);
> -     int (*mknod) (struct mnt_idmap *, struct inode *,struct dentry *,
> +     int (*mknod) (const struct mnt_idmap *, struct inode *,struct dentry *,
>                     umode_t,dev_t);
>       int (*rename) (struct mnt_idmap *, struct inode *, struct dentry *,
>                       struct inode *, struct dentry *, unsigned int);
> diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h
> index 470de3fb22c1..ad05971e6137 100644
> --- a/include/linux/lsm_hook_defs.h
> +++ b/include/linux/lsm_hook_defs.h
> @@ -94,7 +94,7 @@ LSM_HOOK(int, 0, path_mkdir, const struct path *dir, struct 
> dentry *dentry,
>  LSM_HOOK(int, 0, path_rmdir, const struct path *dir, struct dentry *dentry)
>  LSM_HOOK(int, 0, path_mknod, const struct path *dir, struct dentry *dentry,
>        umode_t mode, unsigned int dev)
> -LSM_HOOK(void, LSM_RET_VOID, path_post_mknod, struct mnt_idmap *idmap,
> +LSM_HOOK(void, LSM_RET_VOID, path_post_mknod, const struct mnt_idmap *idmap,
>        struct dentry *dentry)
>  LSM_HOOK(int, 0, path_truncate, const struct path *path)
>  LSM_HOOK(int, 0, path_symlink, const struct path *dir, struct dentry *dentry,
> diff --git a/include/linux/security.h b/include/linux/security.h
> index b07a85e6aed4..d4100396da27 100644
> --- a/include/linux/security.h
> +++ b/include/linux/security.h
> @@ -2085,7 +2085,7 @@ int security_path_mkdir(const struct path *dir, struct 
> dentry *dentry, umode_t m
>  int security_path_rmdir(const struct path *dir, struct dentry *dentry);
>  int security_path_mknod(const struct path *dir, struct dentry *dentry, 
> umode_t mode,
>                       unsigned int dev);
> -void security_path_post_mknod(struct mnt_idmap *idmap, struct dentry 
> *dentry);
> +void security_path_post_mknod(const struct mnt_idmap *idmap, struct dentry 
> *dentry);
>  int security_path_truncate(const struct path *path);
>  int security_path_symlink(const struct path *dir, struct dentry *dentry,
>                         const char *old_name);
> @@ -2120,7 +2120,7 @@ static inline int security_path_mknod(const struct path 
> *dir, struct dentry *den
>       return 0;
>  }
>  
> -static inline void security_path_post_mknod(struct mnt_idmap *idmap,
> +static inline void security_path_post_mknod(const struct mnt_idmap *idmap,
>                                           struct dentry *dentry)
>  { }
>  
> diff --git a/mm/shmem.c b/mm/shmem.c
> index a107940660a8..16a4ea914bdb 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -3818,7 +3818,7 @@ static int shmem_statfs(struct dentry *dentry, struct 
> kstatfs *buf)
>   * File creation. Allocate an inode, and we're done..
>   */
>  static int
> -shmem_mknod(struct mnt_idmap *idmap, struct inode *dir,
> +shmem_mknod(const struct mnt_idmap *idmap, struct inode *dir,
>           struct dentry *dentry, umode_t mode, dev_t dev)
>  {
>       struct inode *inode;
> @@ -3970,7 +3970,7 @@ static int shmem_rmdir(struct inode *dir, struct dentry 
> *dentry)
>       return shmem_unlink(dir, dentry);
>  }
>  
> -static int shmem_whiteout(struct mnt_idmap *idmap,
> +static int shmem_whiteout(const struct mnt_idmap *idmap,
>                         struct inode *old_dir, struct dentry *old_dentry)
>  {
>       struct dentry *whiteout;
> diff --git a/security/integrity/evm/evm_main.c 
> b/security/integrity/evm/evm_main.c
> index 94928549bfab..10a0b39dd9b7 100644
> --- a/security/integrity/evm/evm_main.c
> +++ b/security/integrity/evm/evm_main.c
> @@ -1140,7 +1140,7 @@ static void evm_file_release(struct file *file)
>               iint->flags &= ~EVM_NEW_FILE;
>  }
>  
> -static void evm_post_path_mknod(struct mnt_idmap *idmap, struct dentry 
> *dentry)
> +static void evm_post_path_mknod(const struct mnt_idmap *idmap, struct dentry 
> *dentry)
>  {
>       struct inode *inode = d_backing_inode(dentry);
>       struct evm_iint_cache *iint = evm_iint_inode(inode);
> diff --git a/security/integrity/ima/ima_main.c 
> b/security/integrity/ima/ima_main.c
> index 72ecacda7528..7ac38a98b1f9 100644
> --- a/security/integrity/ima/ima_main.c
> +++ b/security/integrity/ima/ima_main.c
> @@ -879,7 +879,7 @@ static void ima_post_create_tmpfile(const struct 
> mnt_idmap *idmap,
>   * Mark files created via the mknodat syscall as new, so that the
>   * file data can be written later.
>   */
> -static void ima_post_path_mknod(struct mnt_idmap *idmap, struct dentry 
> *dentry)
> +static void ima_post_path_mknod(const struct mnt_idmap *idmap, struct dentry 
> *dentry)
>  {
>       struct ima_iint_cache *iint;
>       struct inode *inode = dentry->d_inode;
> diff --git a/security/security.c b/security/security.c
> index 4e4ef1c496ad..9a3ae6746fb3 100644
> --- a/security/security.c
> +++ b/security/security.c
> @@ -1425,7 +1425,7 @@ EXPORT_SYMBOL(security_path_mknod);
>   *
>   * Update inode security field after a regular file has been created.
>   */
> -void security_path_post_mknod(struct mnt_idmap *idmap, struct dentry *dentry)
> +void security_path_post_mknod(const struct mnt_idmap *idmap, struct dentry 
> *dentry)
>  {
>       if (unlikely(IS_PRIVATE(d_backing_inode(dentry))))
>               return;
> 
> -- 
> 2.53.0
> 
-- 
Jan Kara <[email protected]>
SUSE Labs, CR

Reply via email to