On Tue 01-09-26 14:14:48, 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 | 2 +- > fs/afs/inode.c | 2 +- > fs/afs/internal.h | 2 +- > fs/anon_inodes.c | 2 +- > fs/bad_inode.c | 2 +- > fs/btrfs/inode.c | 2 +- > fs/ceph/inode.c | 4 ++-- > fs/ceph/super.h | 2 +- > fs/coda/coda_linux.h | 2 +- > fs/coda/inode.c | 2 +- > fs/ecryptfs/inode.c | 4 ++-- > fs/erofs/inode.c | 2 +- > fs/erofs/internal.h | 2 +- > fs/exfat/exfat_fs.h | 2 +- > fs/exfat/file.c | 2 +- > fs/ext2/ext2.h | 2 +- > fs/ext2/inode.c | 2 +- > fs/ext4/ext4.h | 4 ++-- > fs/ext4/inode.c | 4 ++-- > fs/ext4/symlink.c | 2 +- > fs/f2fs/f2fs.h | 2 +- > fs/f2fs/file.c | 2 +- > fs/f2fs/namei.c | 2 +- > fs/failfs.c | 2 +- > fs/fat/fat.h | 2 +- > fs/fat/file.c | 2 +- > fs/fuse/dir.c | 4 ++-- > fs/gfs2/inode.c | 2 +- > fs/hfsplus/hfsplus_fs.h | 2 +- > fs/hfsplus/inode.c | 2 +- > fs/internal.h | 2 +- > fs/kernfs/inode.c | 2 +- > fs/kernfs/kernfs-internal.h | 2 +- > fs/libfs.c | 2 +- > fs/minix/inode.c | 2 +- > fs/minix/minix.h | 2 +- > fs/nfs/inode.c | 2 +- > fs/nfs/namespace.c | 2 +- > fs/ntfs/file.c | 2 +- > fs/ntfs/inode.h | 2 +- > fs/ntfs3/file.c | 2 +- > fs/ntfs3/ntfs_fs.h | 2 +- > fs/ocfs2/file.c | 2 +- > fs/ocfs2/file.h | 2 +- > fs/orangefs/inode.c | 2 +- > fs/orangefs/orangefs-kernel.h | 2 +- > fs/overlayfs/inode.c | 2 +- > fs/overlayfs/overlayfs.h | 2 +- > fs/pidfs.c | 2 +- > fs/proc/base.c | 4 ++-- > fs/proc/fd.c | 2 +- > fs/proc/generic.c | 2 +- > fs/proc/internal.h | 2 +- > fs/proc/proc_net.c | 2 +- > fs/proc/proc_sysctl.c | 2 +- > fs/proc/root.c | 2 +- > fs/smb/client/cifsfs.h | 2 +- > fs/smb/client/inode.c | 2 +- > fs/stat.c | 2 +- > fs/tracefs/inode.c | 2 +- > fs/ubifs/dir.c | 2 +- > fs/ubifs/file.c | 2 +- > fs/ubifs/ubifs.h | 2 +- > fs/udf/symlink.c | 2 +- > fs/vboxsf/utils.c | 2 +- > fs/vboxsf/vfsmod.h | 2 +- > fs/xfs/xfs_iops.c | 2 +- > include/linux/fs.h | 6 +++--- > include/linux/nfs_fs.h | 2 +- > mm/shmem.c | 2 +- > 73 files changed, 81 insertions(+), 81 deletions(-) > > diff --git a/Documentation/filesystems/locking.rst > b/Documentation/filesystems/locking.rst > index 864768700eda..f11bfc2e0c13 100644 > --- a/Documentation/filesystems/locking.rst > +++ b/Documentation/filesystems/locking.rst > @@ -77,7 +77,7 @@ prototypes:: > int (*permission) (const struct mnt_idmap *, struct inode *, int, > unsigned int); > struct posix_acl * (*get_inode_acl)(struct inode *, int, bool); > int (*setattr) (struct mnt_idmap *, struct dentry *, struct iattr *); > - int (*getattr) (struct mnt_idmap *, const struct path *, struct kstat > *, u32, unsigned int); > + int (*getattr) (const struct mnt_idmap *, const struct path *, struct > kstat *, u32, unsigned int); > ssize_t (*listxattr) (struct dentry *, char *, size_t); > int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, > u64 len); > void (*update_time)(struct inode *inode, enum fs_update_time type, > diff --git a/Documentation/filesystems/vfs.rst > b/Documentation/filesystems/vfs.rst > index 2ad273cfe547..98aefc5d399e 100644 > --- a/Documentation/filesystems/vfs.rst > +++ b/Documentation/filesystems/vfs.rst > @@ -431,7 +431,7 @@ As of kernel 2.6.22, the following members are defined: > int (*permission) (const struct mnt_idmap *, struct inode *, > int); > struct posix_acl * (*get_inode_acl)(struct inode *, int, bool); > int (*setattr) (struct mnt_idmap *, struct dentry *, struct > iattr *); > - int (*getattr) (struct mnt_idmap *, const struct path *, struct > kstat *, u32, unsigned int); > + int (*getattr) (const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > ssize_t (*listxattr) (struct dentry *, char *, size_t); > void (*update_time)(struct inode *inode, enum fs_update_time > type, > int flags); > diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c > index f2d0eef68acf..0c280342f8e9 100644 > --- a/fs/9p/vfs_inode.c > +++ b/fs/9p/vfs_inode.c > @@ -966,7 +966,7 @@ v9fs_vfs_rename(const struct mnt_idmap *idmap, struct > inode *old_dir, > */ > > static int > -v9fs_vfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +v9fs_vfs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > struct dentry *dentry = path->dentry; > diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c > index c7176719a4f9..e37854ee6346 100644 > --- a/fs/9p/vfs_inode_dotl.c > +++ b/fs/9p/vfs_inode_dotl.c > @@ -414,7 +414,7 @@ static struct dentry *v9fs_vfs_mkdir_dotl(const struct > mnt_idmap *idmap, > } > > static int > -v9fs_vfs_getattr_dotl(struct mnt_idmap *idmap, > +v9fs_vfs_getattr_dotl(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > diff --git a/fs/afs/inode.c b/fs/afs/inode.c > index 14f39a9bea6c..7b8a2adc3f59 100644 > --- a/fs/afs/inode.c > +++ b/fs/afs/inode.c > @@ -596,7 +596,7 @@ struct inode *afs_root_iget(struct super_block *sb, > struct key *key) > /* > * read the attributes of an inode > */ > -int afs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int afs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int query_flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/afs/internal.h b/fs/afs/internal.h > index e772da2a15f2..7a8cdde9e0ad 100644 > --- a/fs/afs/internal.h > +++ b/fs/afs/internal.h > @@ -1258,7 +1258,7 @@ extern int afs_fetch_status(struct afs_vnode *, struct > key *, bool, afs_access_t > extern int afs_ilookup5_test_by_fid(struct inode *, void *); > extern struct inode *afs_iget(struct afs_operation *, struct afs_vnode_param > *); > extern struct inode *afs_root_iget(struct super_block *, struct key *); > -extern int afs_getattr(struct mnt_idmap *idmap, const struct path *, > +extern int afs_getattr(const struct mnt_idmap *idmap, const struct path *, > struct kstat *, u32, unsigned int); > extern int afs_setattr(struct mnt_idmap *idmap, struct dentry *, struct > iattr *); > extern void afs_evict_inode(struct inode *); > diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c > index a7b9b948e33d..d4a7e0b67289 100644 > --- a/fs/anon_inodes.c > +++ b/fs/anon_inodes.c > @@ -46,7 +46,7 @@ static struct inode *anon_inode_inode __ro_after_init; > * Rather than mess with our internal sane inode data, just fix it > * up here in getattr() by masking off the format bits. > */ > -int anon_inode_getattr(struct mnt_idmap *idmap, const struct path *path, > +int anon_inode_getattr(const struct mnt_idmap *idmap, const struct path > *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > { > diff --git a/fs/bad_inode.c b/fs/bad_inode.c > index 8c7578ea4bd7..e740b4e658bf 100644 > --- a/fs/bad_inode.c > +++ b/fs/bad_inode.c > @@ -95,7 +95,7 @@ static int bad_inode_permission(const struct mnt_idmap > *idmap, > return -EIO; > } > > -static int bad_inode_getattr(struct mnt_idmap *idmap, > +static int bad_inode_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c > index 61cfa03b6152..da143f9376ee 100644 > --- a/fs/btrfs/inode.c > +++ b/fs/btrfs/inode.c > @@ -8224,7 +8224,7 @@ int __init btrfs_init_cachep(void) > return 0; > } > > -static int btrfs_getattr(struct mnt_idmap *idmap, > +static int btrfs_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c > index b8527f67e3f0..185d713218e6 100644 > --- a/fs/ceph/inode.c > +++ b/fs/ceph/inode.c > @@ -2398,7 +2398,7 @@ static const char *ceph_encrypted_get_link(struct > dentry *dentry, > done); > } > > -static int ceph_encrypted_symlink_getattr(struct mnt_idmap *idmap, > +static int ceph_encrypted_symlink_getattr(const struct mnt_idmap *idmap, > const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > @@ -3145,7 +3145,7 @@ static int statx_to_caps(u32 want, umode_t mode) > * Get all the attributes. If we have sufficient caps for the requested > attrs, > * then we can avoid talking to the MDS at all. > */ > -int ceph_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ceph_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/ceph/super.h b/fs/ceph/super.h > index fd603be209e4..0a5e3916e855 100644 > --- a/fs/ceph/super.h > +++ b/fs/ceph/super.h > @@ -1177,7 +1177,7 @@ extern int __ceph_setattr(const struct mnt_idmap > *idmap, struct inode *inode, > struct iattr *attr, struct ceph_iattr *cia); > extern int ceph_setattr(struct mnt_idmap *idmap, > struct dentry *dentry, struct iattr *attr); > -extern int ceph_getattr(struct mnt_idmap *idmap, > +extern int ceph_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags); > void ceph_inode_shutdown(struct inode *inode); > diff --git a/fs/coda/coda_linux.h b/fs/coda/coda_linux.h > index 5ee6cedd3865..5dc9e392079f 100644 > --- a/fs/coda/coda_linux.h > +++ b/fs/coda/coda_linux.h > @@ -49,7 +49,7 @@ int coda_release(struct inode *i, struct file *f); > int coda_permission(const struct mnt_idmap *idmap, struct inode *inode, > int mask); > int coda_revalidate_inode(struct inode *); > -int coda_getattr(struct mnt_idmap *, const struct path *, struct kstat *, > +int coda_getattr(const struct mnt_idmap *, const struct path *, struct kstat > *, > u32, unsigned int); > int coda_setattr(struct mnt_idmap *, struct dentry *, struct iattr *); > > diff --git a/fs/coda/inode.c b/fs/coda/inode.c > index 40b43866e6a5..f83ebd94c6be 100644 > --- a/fs/coda/inode.c > +++ b/fs/coda/inode.c > @@ -294,7 +294,7 @@ static void coda_evict_inode(struct inode *inode) > coda_cache_clear_inode(inode); > } > > -int coda_getattr(struct mnt_idmap *idmap, const struct path *path, > +int coda_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > int err = coda_revalidate_inode(d_inode(path->dentry)); > diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c > index 432f82bc5b0c..e70a8d73d137 100644 > --- a/fs/ecryptfs/inode.c > +++ b/fs/ecryptfs/inode.c > @@ -939,7 +939,7 @@ static int ecryptfs_setattr(struct mnt_idmap *idmap, > return rc; > } > > -static int ecryptfs_getattr_link(struct mnt_idmap *idmap, > +static int ecryptfs_getattr_link(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > @@ -965,7 +965,7 @@ static int ecryptfs_getattr_link(struct mnt_idmap *idmap, > return rc; > } > > -static int ecryptfs_getattr(struct mnt_idmap *idmap, > +static int ecryptfs_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c > index 45afe5c50de8..26ea3790ff21 100644 > --- a/fs/erofs/inode.c > +++ b/fs/erofs/inode.c > @@ -311,7 +311,7 @@ struct inode *erofs_iget(struct super_block *sb, > erofs_nid_t nid) > return inode; > } > > -int erofs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int erofs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > { > diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h > index 65974e57aebf..b4f52f5cd626 100644 > --- a/fs/erofs/internal.h > +++ b/fs/erofs/internal.h > @@ -421,7 +421,7 @@ void erofs_onlinefolio_init(struct folio *folio); > void erofs_onlinefolio_split(struct folio *folio); > void erofs_onlinefolio_end(struct folio *folio, int err, bool dirty); > struct inode *erofs_iget(struct super_block *sb, erofs_nid_t nid); > -int erofs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int erofs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags); > int erofs_namei(struct inode *dir, const struct qstr *name, > diff --git a/fs/exfat/exfat_fs.h b/fs/exfat/exfat_fs.h > index a9131fe03302..5165a0df068a 100644 > --- a/fs/exfat/exfat_fs.h > +++ b/fs/exfat/exfat_fs.h > @@ -557,7 +557,7 @@ extern const struct file_operations exfat_file_operations; > int __exfat_truncate(struct inode *inode); > int exfat_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > -int exfat_getattr(struct mnt_idmap *idmap, const struct path *path, > +int exfat_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, unsigned int request_mask, > unsigned int query_flags); > struct file_kattr; > diff --git a/fs/exfat/file.c b/fs/exfat/file.c > index 0530803f71e8..c072a0663e69 100644 > --- a/fs/exfat/file.c > +++ b/fs/exfat/file.c > @@ -319,7 +319,7 @@ static void exfat_truncate(struct inode *inode) > mutex_unlock(&sbi->s_lock); > } > > -int exfat_getattr(struct mnt_idmap *idmap, const struct path *path, > +int exfat_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, unsigned int request_mask, > unsigned int query_flags) > { > diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h > index 702cb7aa1afd..f4bb8b888052 100644 > --- a/fs/ext2/ext2.h > +++ b/fs/ext2/ext2.h > @@ -740,7 +740,7 @@ extern void ext2_evict_inode(struct inode *); > void ext2_write_failed(struct address_space *mapping, loff_t to); > extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, > int); > extern int ext2_setattr (struct mnt_idmap *, struct dentry *, struct iattr > *); > -extern int ext2_getattr (struct mnt_idmap *, const struct path *, > +extern int ext2_getattr (const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > extern void ext2_set_inode_flags(struct inode *inode); > extern int ext2_fiemap(struct inode *inode, struct fiemap_extent_info > *fieinfo, > diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c > index a9245f0cda4d..d4b2a2dec35e 100644 > --- a/fs/ext2/inode.c > +++ b/fs/ext2/inode.c > @@ -1591,7 +1591,7 @@ int ext2_sync_inode_metadata(struct inode *inode, > struct writeback_control *wbc) > return err; > } > > -int ext2_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ext2_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int query_flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > index 2c9a845ed0f8..eb7cf19f606a 100644 > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -3182,11 +3182,11 @@ extern int ext4_sync_inode_metadata(struct inode *, > struct writeback_control *) > extern int ext4_setattr(struct mnt_idmap *, struct dentry *, > struct iattr *); > extern u32 ext4_dio_alignment(struct inode *inode); > -extern int ext4_getattr(struct mnt_idmap *, const struct path *, > +extern int ext4_getattr(const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > extern void ext4_evict_inode(struct inode *); > extern void ext4_clear_inode(struct inode *); > -extern int ext4_file_getattr(struct mnt_idmap *, const struct path *, > +extern int ext4_file_getattr(const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > extern void ext4_dirty_inode(struct inode *, int); > extern int ext4_change_inode_journal_flag(struct inode *, int); > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index bd4b778df9eb..045f5385f26e 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -6263,7 +6263,7 @@ u32 ext4_dio_alignment(struct inode *inode) > return 1; /* use the iomap defaults */ > } > > -int ext4_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ext4_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int query_flags) > { > struct inode *inode = d_inode(path->dentry); > @@ -6332,7 +6332,7 @@ int ext4_getattr(struct mnt_idmap *idmap, const struct > path *path, > return 0; > } > > -int ext4_file_getattr(struct mnt_idmap *idmap, > +int ext4_file_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/ext4/symlink.c b/fs/ext4/symlink.c > index b612262719ed..e680d1e45b47 100644 > --- a/fs/ext4/symlink.c > +++ b/fs/ext4/symlink.c > @@ -55,7 +55,7 @@ static const char *ext4_encrypted_get_link(struct dentry > *dentry, > return paddr; > } > > -static int ext4_encrypted_symlink_getattr(struct mnt_idmap *idmap, > +static int ext4_encrypted_symlink_getattr(const struct mnt_idmap *idmap, > const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > index 245df8563256..06538f5fd725 100644 > --- a/fs/f2fs/f2fs.h > +++ b/fs/f2fs/f2fs.h > @@ -3848,7 +3848,7 @@ int f2fs_sync_file(struct file *file, loff_t start, > loff_t end, int datasync); > int f2fs_do_truncate_blocks(struct inode *inode, u64 from, bool lock); > int f2fs_truncate_blocks(struct inode *inode, u64 from, bool lock); > int f2fs_truncate(struct inode *inode); > -int f2fs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int f2fs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags); > int f2fs_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > index d0cc2ca1397a..267a3a191d54 100644 > --- a/fs/f2fs/file.c > +++ b/fs/f2fs/file.c > @@ -1032,7 +1032,7 @@ static bool f2fs_force_buffered_io(struct inode *inode, > int rw) > return false; > } > > -int f2fs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int f2fs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int query_flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c > index 9934777eb2a9..233c07fec171 100644 > --- a/fs/f2fs/namei.c > +++ b/fs/f2fs/namei.c > @@ -1394,7 +1394,7 @@ static const char *f2fs_encrypted_get_link(struct > dentry *dentry, > return target; > } > > -static int f2fs_encrypted_symlink_getattr(struct mnt_idmap *idmap, > +static int f2fs_encrypted_symlink_getattr(const struct mnt_idmap *idmap, > const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > diff --git a/fs/failfs.c b/fs/failfs.c > index cec6cad99eb2..437cdc981c2d 100644 > --- a/fs/failfs.c > +++ b/fs/failfs.c > @@ -35,7 +35,7 @@ static struct dentry *failfs_lookup(struct inode *dir, > struct dentry *dentry, > return ERR_PTR(-EOPNOTSUPP); > } > > -static int failfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +static int failfs_getattr(const struct mnt_idmap *idmap, const struct path > *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > { > diff --git a/fs/fat/fat.h b/fs/fat/fat.h > index 61338413d9f3..202f209a544b 100644 > --- a/fs/fat/fat.h > +++ b/fs/fat/fat.h > @@ -407,7 +407,7 @@ extern const struct inode_operations > fat_file_inode_operations; > extern int fat_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > extern void fat_truncate_blocks(struct inode *inode, loff_t offset); > -extern int fat_getattr(struct mnt_idmap *idmap, > +extern int fat_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags); > int fat_fileattr_get(struct dentry *dentry, struct file_kattr *fa); > diff --git a/fs/fat/file.c b/fs/fat/file.c > index 0b8b493d06e4..b37bc637945f 100644 > --- a/fs/fat/file.c > +++ b/fs/fat/file.c > @@ -432,7 +432,7 @@ int fat_fileattr_get(struct dentry *dentry, struct > file_kattr *fa) > } > EXPORT_SYMBOL_GPL(fat_fileattr_get); > > -int fat_getattr(struct mnt_idmap *idmap, const struct path *path, > +int fat_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c > index ff941e78918f..dd267d9498bc 100644 > --- a/fs/fuse/dir.c > +++ b/fs/fuse/dir.c > @@ -1537,7 +1537,7 @@ static int fuse_do_getattr(const struct mnt_idmap > *idmap, struct inode *inode, > return err; > } > > -static int fuse_update_get_attr(struct mnt_idmap *idmap, struct inode *inode, > +static int fuse_update_get_attr(const struct mnt_idmap *idmap, struct inode > *inode, > struct file *file, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > @@ -2387,7 +2387,7 @@ static int fuse_setattr(struct mnt_idmap *idmap, struct > dentry *entry, > return ret; > } > > -static int fuse_getattr(struct mnt_idmap *idmap, > +static int fuse_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c > index e207ab1f5c23..5ddac2f50f30 100644 > --- a/fs/gfs2/inode.c > +++ b/fs/gfs2/inode.c > @@ -2156,7 +2156,7 @@ static int gfs2_setattr(struct mnt_idmap *idmap, > * Returns: errno > */ > > -static int gfs2_getattr(struct mnt_idmap *idmap, > +static int gfs2_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > diff --git a/fs/hfsplus/hfsplus_fs.h b/fs/hfsplus/hfsplus_fs.h > index 86fc1c1cdfd6..d55cb16e3897 100644 > --- a/fs/hfsplus/hfsplus_fs.h > +++ b/fs/hfsplus/hfsplus_fs.h > @@ -459,7 +459,7 @@ void hfsplus_inode_write_fork(struct inode *inode, > struct hfsplus_fork_raw *fork); > int hfsplus_cat_read_inode(struct inode *inode, struct hfs_find_data *fd); > int hfsplus_cat_write_inode(struct inode *inode); > -int hfsplus_getattr(struct mnt_idmap *idmap, const struct path *path, > +int hfsplus_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags); > int hfsplus_file_fsync(struct file *file, loff_t start, loff_t end, > diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c > index 9821662bfc1d..2807b29c7028 100644 > --- a/fs/hfsplus/inode.c > +++ b/fs/hfsplus/inode.c > @@ -335,7 +335,7 @@ static int hfsplus_setattr(struct mnt_idmap *idmap, > return 0; > } > > -int hfsplus_getattr(struct mnt_idmap *idmap, const struct path *path, > +int hfsplus_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > { > diff --git a/fs/internal.h b/fs/internal.h > index 8a1c7c05c5a2..88d9296c2a48 100644 > --- a/fs/internal.h > +++ b/fs/internal.h > @@ -356,7 +356,7 @@ void file_f_owner_release(struct file *file); > bool file_seek_cur_needs_f_lock(struct file *file); > int statmount_mnt_idmap(const struct mnt_idmap *idmap, struct seq_file *seq, > bool uid_map); > struct dentry *find_next_child(struct dentry *parent, struct dentry *prev); > -int anon_inode_getattr(struct mnt_idmap *idmap, const struct path *path, > +int anon_inode_getattr(const struct mnt_idmap *idmap, const struct path > *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags); > int anon_inode_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > diff --git a/fs/kernfs/inode.c b/fs/kernfs/inode.c > index b348d4cd150b..6a92aa789ce5 100644 > --- a/fs/kernfs/inode.c > +++ b/fs/kernfs/inode.c > @@ -181,7 +181,7 @@ static void kernfs_refresh_inode(struct kernfs_node *kn, > struct inode *inode) > set_nlink(inode, kn->dir.subdirs + 2); > } > > -int kernfs_iop_getattr(struct mnt_idmap *idmap, > +int kernfs_iop_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/kernfs/kernfs-internal.h b/fs/kernfs/kernfs-internal.h > index 0f6f412213f6..8af7849f2c9c 100644 > --- a/fs/kernfs/kernfs-internal.h > +++ b/fs/kernfs/kernfs-internal.h > @@ -175,7 +175,7 @@ int kernfs_iop_permission(const struct mnt_idmap *idmap, > struct inode *inode, int mask); > int kernfs_iop_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *iattr); > -int kernfs_iop_getattr(struct mnt_idmap *idmap, > +int kernfs_iop_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags); > ssize_t kernfs_iop_listxattr(struct dentry *dentry, char *buf, size_t size); > diff --git a/fs/libfs.c b/fs/libfs.c > index 8b379230b64f..b70977b10a7c 100644 > --- a/fs/libfs.c > +++ b/fs/libfs.c > @@ -29,7 +29,7 @@ > > #include "internal.h" > > -int simple_getattr(struct mnt_idmap *idmap, const struct path *path, > +int simple_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > { > diff --git a/fs/minix/inode.c b/fs/minix/inode.c > index daf83e4ff25c..670179173645 100644 > --- a/fs/minix/inode.c > +++ b/fs/minix/inode.c > @@ -724,7 +724,7 @@ static int minix_sync_inode_metadata(struct inode *inode, > return err; > } > > -int minix_getattr(struct mnt_idmap *idmap, const struct path *path, > +int minix_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > struct super_block *sb = path->dentry->d_sb; > diff --git a/fs/minix/minix.h b/fs/minix/minix.h > index 78722ce22e1e..db92cf9e0e1b 100644 > --- a/fs/minix/minix.h > +++ b/fs/minix/minix.h > @@ -55,7 +55,7 @@ unsigned long minix_count_free_inodes(struct super_block > *sb); > int minix_new_block(struct inode *inode); > void minix_free_block(struct inode *inode, unsigned long block); > unsigned long minix_count_free_blocks(struct super_block *sb); > -int minix_getattr(struct mnt_idmap *, const struct path *, > +int minix_getattr(const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > int minix_prepare_chunk(struct folio *folio, loff_t pos, unsigned len); > struct mapping_metadata_bhs *minix_get_metadata_bhs(struct inode *inode); > diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c > index 3022454f7698..b114488715fb 100644 > --- a/fs/nfs/inode.c > +++ b/fs/nfs/inode.c > @@ -955,7 +955,7 @@ static u32 nfs_get_valid_attrmask(struct inode *inode) > return reply_mask; > } > > -int nfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int nfs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int query_flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c > index 6d0073c24771..17f54d79efa7 100644 > --- a/fs/nfs/namespace.c > +++ b/fs/nfs/namespace.c > @@ -222,7 +222,7 @@ struct vfsmount *nfs_d_automount(struct path *path) > } > > static int > -nfs_namespace_getattr(struct mnt_idmap *idmap, > +nfs_namespace_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c > index 88747217ba61..40e01704ea8f 100644 > --- a/fs/ntfs/file.c > +++ b/fs/ntfs/file.c > @@ -364,7 +364,7 @@ int ntfs_setattr(struct mnt_idmap *idmap, struct dentry > *dentry, > return err; > } > > -int ntfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ntfs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, unsigned int request_mask, > unsigned int query_flags) > { > diff --git a/fs/ntfs/inode.h b/fs/ntfs/inode.h > index ff61bd402df0..9cf923911825 100644 > --- a/fs/ntfs/inode.h > +++ b/fs/ntfs/inode.h > @@ -332,7 +332,7 @@ int ntfs_truncate_vfs(struct inode *vi, loff_t new_size, > loff_t i_size); > > int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > -int ntfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ntfs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, unsigned int request_mask, > unsigned int query_flags); > > diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c > index f7baa202dc28..f4d08346d25d 100644 > --- a/fs/ntfs3/file.c > +++ b/fs/ntfs3/file.c > @@ -261,7 +261,7 @@ long ntfs_compat_ioctl(struct file *filp, u32 cmd, > unsigned long arg) > /* > * ntfs_getattr - inode_operations::getattr > */ > -int ntfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ntfs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, u32 flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h > index d89609a17886..262b7ff2d6e1 100644 > --- a/fs/ntfs3/ntfs_fs.h > +++ b/fs/ntfs3/ntfs_fs.h > @@ -553,7 +553,7 @@ extern const struct file_operations ntfs_dir_operations; > int ntfs_fileattr_get(struct dentry *dentry, struct file_kattr *fa); > int ntfs_fileattr_set(const struct mnt_idmap *idmap, struct dentry *dentry, > struct file_kattr *fa); > -int ntfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ntfs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, u32 flags); > int ntfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c > index 24bbf607546c..befc6ebb2a06 100644 > --- a/fs/ocfs2/file.c > +++ b/fs/ocfs2/file.c > @@ -1317,7 +1317,7 @@ int ocfs2_setattr(struct mnt_idmap *idmap, struct > dentry *dentry, > return status; > } > > -int ocfs2_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ocfs2_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > struct inode *inode = d_inode(path->dentry); > diff --git a/fs/ocfs2/file.h b/fs/ocfs2/file.h > index 08e4d6796531..b51c8e77dad7 100644 > --- a/fs/ocfs2/file.h > +++ b/fs/ocfs2/file.h > @@ -52,7 +52,7 @@ int ocfs2_zero_extend(struct inode *inode, struct > buffer_head *di_bh, > loff_t zero_to); > int ocfs2_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > -int ocfs2_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ocfs2_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags); > int ocfs2_permission(const struct mnt_idmap *idmap, > struct inode *inode, > diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c > index 536d5e842c55..100669ee5862 100644 > --- a/fs/orangefs/inode.c > +++ b/fs/orangefs/inode.c > @@ -848,7 +848,7 @@ int orangefs_setattr(struct mnt_idmap *idmap, struct > dentry *dentry, > /* > * Obtain attributes of an object given a dentry > */ > -int orangefs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int orangefs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > int ret; > diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h > index a5c9e7be4005..3bf01c0c763b 100644 > --- a/fs/orangefs/orangefs-kernel.h > +++ b/fs/orangefs/orangefs-kernel.h > @@ -354,7 +354,7 @@ int __orangefs_setattr(struct inode *, struct iattr *); > int __orangefs_setattr_mode(struct dentry *dentry, struct iattr *iattr); > int orangefs_setattr(struct mnt_idmap *, struct dentry *, struct iattr *); > > -int orangefs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int orangefs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags); > > int orangefs_permission(const struct mnt_idmap *idmap, > diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c > index 18e4cbe154cf..b765780686e6 100644 > --- a/fs/overlayfs/inode.c > +++ b/fs/overlayfs/inode.c > @@ -168,7 +168,7 @@ static inline int ovl_real_getattr_nosec(struct > super_block *sb, > return vfs_getattr_nosec(path, stat, request_mask, flags); > } > > -int ovl_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ovl_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > struct dentry *dentry = path->dentry; > diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h > index 1759221dcad5..02a822dc8e5e 100644 > --- a/fs/overlayfs/overlayfs.h > +++ b/fs/overlayfs/overlayfs.h > @@ -950,6 +950,6 @@ static inline bool ovl_force_readonly(struct ovl_fs *ofs) > const struct xattr_handler * const *ovl_xattr_handlers(struct ovl_fs *ofs); > int ovl_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > -int ovl_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ovl_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags); > ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size); > diff --git a/fs/pidfs.c b/fs/pidfs.c > index 5bc136de8660..38868ac99950 100644 > --- a/fs/pidfs.c > +++ b/fs/pidfs.c > @@ -829,7 +829,7 @@ static int pidfs_setattr(struct mnt_idmap *idmap, struct > dentry *dentry, > return anon_inode_setattr(idmap, dentry, attr); > } > > -static int pidfs_getattr(struct mnt_idmap *idmap, const struct path *path, > +static int pidfs_getattr(const struct mnt_idmap *idmap, const struct path > *path, > struct kstat *stat, u32 request_mask, > unsigned int query_flags) > { > diff --git a/fs/proc/base.c b/fs/proc/base.c > index 8dc43c846298..3278c37e5cde 100644 > --- a/fs/proc/base.c > +++ b/fs/proc/base.c > @@ -1994,7 +1994,7 @@ static struct inode *proc_pid_make_base_inode(struct > super_block *sb, > return inode; > } > > -int pid_getattr(struct mnt_idmap *idmap, const struct path *path, > +int pid_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int query_flags) > { > struct inode *inode = d_inode(path->dentry); > @@ -3936,7 +3936,7 @@ static int proc_task_readdir(struct file *file, struct > dir_context *ctx) > return 0; > } > > -static int proc_task_getattr(struct mnt_idmap *idmap, > +static int proc_task_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/proc/fd.c b/fs/proc/fd.c > index 0653bceb730d..7214a7495380 100644 > --- a/fs/proc/fd.c > +++ b/fs/proc/fd.c > @@ -342,7 +342,7 @@ int proc_fd_permission(const struct mnt_idmap *idmap, > return rv; > } > > -static int proc_fd_getattr(struct mnt_idmap *idmap, > +static int proc_fd_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/proc/generic.c b/fs/proc/generic.c > index 26086a283672..4c4f1e63f68f 100644 > --- a/fs/proc/generic.c > +++ b/fs/proc/generic.c > @@ -135,7 +135,7 @@ static int proc_setattr(struct mnt_idmap *idmap, struct > dentry *dentry, > return 0; > } > > -static int proc_getattr(struct mnt_idmap *idmap, > +static int proc_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/proc/internal.h b/fs/proc/internal.h > index 04bd6c9e65a7..706fae7d30be 100644 > --- a/fs/proc/internal.h > +++ b/fs/proc/internal.h > @@ -258,7 +258,7 @@ extern int proc_pid_statm(struct seq_file *, struct > pid_namespace *, > * base.c > */ > extern const struct dentry_operations pid_dentry_operations; > -extern int pid_getattr(struct mnt_idmap *, const struct path *, > +extern int pid_getattr(const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > int proc_nochmod_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > struct iattr *attr); > diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c > index 00cc385bce21..b1f5eafb069a 100644 > --- a/fs/proc/proc_net.c > +++ b/fs/proc/proc_net.c > @@ -308,7 +308,7 @@ static struct dentry *proc_tgid_net_lookup(struct inode > *dir, > return de; > } > > -static int proc_tgid_net_getattr(struct mnt_idmap *idmap, > +static int proc_tgid_net_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c > index 5315d891f244..bd6730000b27 100644 > --- a/fs/proc/proc_sysctl.c > +++ b/fs/proc/proc_sysctl.c > @@ -834,7 +834,7 @@ static int proc_sys_setattr(struct mnt_idmap *idmap, > return 0; > } > > -static int proc_sys_getattr(struct mnt_idmap *idmap, > +static int proc_sys_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/proc/root.c b/fs/proc/root.c > index 99adddfeb4a4..7fbbe92bf73a 100644 > --- a/fs/proc/root.c > +++ b/fs/proc/root.c > @@ -402,7 +402,7 @@ void __init proc_root_init(void) > register_filesystem(&proc_fs_type); > } > > -static int proc_root_getattr(struct mnt_idmap *idmap, > +static int proc_root_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/smb/client/cifsfs.h b/fs/smb/client/cifsfs.h > index cf09d915bedd..c0adc5219213 100644 > --- a/fs/smb/client/cifsfs.h > +++ b/fs/smb/client/cifsfs.h > @@ -78,7 +78,7 @@ int cifs_revalidate_file(struct file *filp); > int cifs_revalidate_dentry(struct dentry *dentry); > int cifs_revalidate_mapping(struct inode *inode); > int cifs_zap_mapping(struct inode *inode); > -int cifs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int cifs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags); > int cifs_setattr(struct mnt_idmap *idmap, struct dentry *direntry, > struct iattr *attrs); > diff --git a/fs/smb/client/inode.c b/fs/smb/client/inode.c > index e3610e456bd4..132f9e072b77 100644 > --- a/fs/smb/client/inode.c > +++ b/fs/smb/client/inode.c > @@ -2932,7 +2932,7 @@ int cifs_revalidate_dentry(struct dentry *dentry) > return cifs_revalidate_mapping(inode); > } > > -int cifs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int cifs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > struct cifs_sb_info *cifs_sb = CIFS_SB(path->dentry); > diff --git a/fs/stat.c b/fs/stat.c > index c461c3054234..fe351818d1d6 100644 > --- a/fs/stat.c > +++ b/fs/stat.c > @@ -79,7 +79,7 @@ EXPORT_SYMBOL(fill_mg_cmtime); > * uid and gid filds. On non-idmapped mounts or if permission checking is to > be > * performed on the raw inode simply pass @nop_mnt_idmap. > */ > -void generic_fillattr(struct mnt_idmap *idmap, u32 request_mask, > +void generic_fillattr(const struct mnt_idmap *idmap, u32 request_mask, > struct inode *inode, struct kstat *stat) > { > vfsuid_t vfsuid = i_uid_into_vfsuid(idmap, inode); > diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c > index 995b8d0f8d33..44448f1a2bb1 100644 > --- a/fs/tracefs/inode.c > +++ b/fs/tracefs/inode.c > @@ -196,7 +196,7 @@ static int tracefs_permission(const struct mnt_idmap > *idmap, > return generic_permission(idmap, inode, mask); > } > > -static int tracefs_getattr(struct mnt_idmap *idmap, > +static int tracefs_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c > index 57640b6ff72d..c67954f6bee0 100644 > --- a/fs/ubifs/dir.c > +++ b/fs/ubifs/dir.c > @@ -1667,7 +1667,7 @@ static int ubifs_rename(const struct mnt_idmap *idmap, > return do_rename(old_dir, old_dentry, new_dir, new_dentry, flags); > } > > -int ubifs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ubifs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags) > { > loff_t size; > diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c > index e73c28b12f97..bfc1bd0203ad 100644 > --- a/fs/ubifs/file.c > +++ b/fs/ubifs/file.c > @@ -1611,7 +1611,7 @@ static const char *ubifs_get_link(struct dentry *dentry, > return fscrypt_get_symlink(inode, ui->data, ui->data_len, done); > } > > -static int ubifs_symlink_getattr(struct mnt_idmap *idmap, > +static int ubifs_symlink_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h > index af0ef3583aeb..d455a67fe411 100644 > --- a/fs/ubifs/ubifs.h > +++ b/fs/ubifs/ubifs.h > @@ -2028,7 +2028,7 @@ int ubifs_update_time(struct inode *inode, enum > fs_update_time type, > /* dir.c */ > struct inode *ubifs_new_inode(struct ubifs_info *c, struct inode *dir, > umode_t mode, bool is_xattr); > -int ubifs_getattr(struct mnt_idmap *idmap, const struct path *path, > +int ubifs_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *stat, u32 request_mask, unsigned int flags); > int ubifs_check_dir_empty(struct inode *dir); > > diff --git a/fs/udf/symlink.c b/fs/udf/symlink.c > index a05d1888a2ba..df41bf5a05b1 100644 > --- a/fs/udf/symlink.c > +++ b/fs/udf/symlink.c > @@ -133,7 +133,7 @@ static int udf_symlink_filler(struct file *file, struct > folio *folio) > return err; > } > > -static int udf_symlink_getattr(struct mnt_idmap *idmap, > +static int udf_symlink_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int flags) > { > diff --git a/fs/vboxsf/utils.c b/fs/vboxsf/utils.c > index 298bfc93255c..6a5a47a32075 100644 > --- a/fs/vboxsf/utils.c > +++ b/fs/vboxsf/utils.c > @@ -233,7 +233,7 @@ int vboxsf_inode_revalidate(struct dentry *dentry) > return 0; > } > > -int vboxsf_getattr(struct mnt_idmap *idmap, const struct path *path, > +int vboxsf_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *kstat, u32 request_mask, unsigned int flags) > { > int err; > diff --git a/fs/vboxsf/vfsmod.h b/fs/vboxsf/vfsmod.h > index b61afd0ce842..9c713b8e7aa2 100644 > --- a/fs/vboxsf/vfsmod.h > +++ b/fs/vboxsf/vfsmod.h > @@ -98,7 +98,7 @@ int vboxsf_stat(struct vboxsf_sbi *sbi, struct shfl_string > *path, > struct shfl_fsobjinfo *info); > int vboxsf_stat_dentry(struct dentry *dentry, struct shfl_fsobjinfo *info); > int vboxsf_inode_revalidate(struct dentry *dentry); > -int vboxsf_getattr(struct mnt_idmap *idmap, const struct path *path, > +int vboxsf_getattr(const struct mnt_idmap *idmap, const struct path *path, > struct kstat *kstat, u32 request_mask, > unsigned int query_flags); > int vboxsf_setattr(struct mnt_idmap *idmap, struct dentry *dentry, > diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c > index 791af2db7124..19fd83cea18b 100644 > --- a/fs/xfs/xfs_iops.c > +++ b/fs/xfs/xfs_iops.c > @@ -679,7 +679,7 @@ xfs_report_atomic_write( > > STATIC int > xfs_vn_getattr( > - struct mnt_idmap *idmap, > + const struct mnt_idmap *idmap, > const struct path *path, > struct kstat *stat, > u32 request_mask, > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 2b9ae72010f0..c79fd3776bbf 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -2013,7 +2013,7 @@ struct inode_operations { > int (*rename) (const struct mnt_idmap *, struct inode *, struct dentry > *, > struct inode *, struct dentry *, unsigned int); > int (*setattr) (struct mnt_idmap *, struct dentry *, struct iattr *); > - int (*getattr) (struct mnt_idmap *, const struct path *, > + int (*getattr) (const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > ssize_t (*listxattr) (struct dentry *, char *, size_t); > int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, > @@ -3204,7 +3204,7 @@ extern int page_symlink(struct inode *inode, const char > *symname, int len); > extern const struct inode_operations page_symlink_inode_operations; > extern void kfree_link(void *); > void fill_mg_cmtime(struct kstat *stat, u32 request_mask, struct inode > *inode); > -void generic_fillattr(struct mnt_idmap *, u32, struct inode *, struct kstat > *); > +void generic_fillattr(const struct mnt_idmap *, u32, struct inode *, struct > kstat *); > void generic_fill_statx_attr(struct inode *inode, struct kstat *stat); > void generic_fill_statx_atomic_writes(struct kstat *stat, > unsigned int unit_min, > @@ -3263,7 +3263,7 @@ extern loff_t dcache_dir_lseek(struct file *, loff_t, > int); > extern int dcache_readdir(struct file *, struct dir_context *); > extern int simple_setattr(struct mnt_idmap *, struct dentry *, > struct iattr *); > -extern int simple_getattr(struct mnt_idmap *, const struct path *, > +extern int simple_getattr(const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > extern int simple_statfs(struct dentry *, struct kstatfs *); > extern int simple_open(struct inode *inode, struct file *file); > diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h > index b2828ea03abe..7b307dea7ce7 100644 > --- a/include/linux/nfs_fs.h > +++ b/include/linux/nfs_fs.h > @@ -437,7 +437,7 @@ extern int nfs_refresh_inode(struct inode *, struct > nfs_fattr *); > extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr > *fattr); > extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct > nfs_fattr *fattr); > extern int nfs_post_op_update_inode_force_wcc_locked(struct inode *inode, > struct nfs_fattr *fattr); > -extern int nfs_getattr(struct mnt_idmap *, const struct path *, > +extern int nfs_getattr(const struct mnt_idmap *, const struct path *, > struct kstat *, u32, unsigned int); > extern void nfs_access_add_cache(struct inode *, struct nfs_access_entry *, > const struct cred *); > extern void nfs_access_set_mask(struct nfs_access_entry *, u32); > diff --git a/mm/shmem.c b/mm/shmem.c > index 656235b2f9c5..b27e5f23dc93 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -1292,7 +1292,7 @@ void shmem_truncate_range(struct inode *inode, loff_t > lstart, uoff_t lend) > } > EXPORT_SYMBOL_GPL(shmem_truncate_range); > > -static int shmem_getattr(struct mnt_idmap *idmap, > +static int shmem_getattr(const struct mnt_idmap *idmap, > const struct path *path, struct kstat *stat, > u32 request_mask, unsigned int query_flags) > { > > -- > 2.53.0 > -- Jan Kara <[email protected]> SUSE Labs, CR

