fs: pass the request_mask to generic_fillattr
authorJeff Layton <jlayton@kernel.org>
Mon, 7 Aug 2023 19:38:33 +0000 (15:38 -0400)
committerChristian Brauner <brauner@kernel.org>
Wed, 9 Aug 2023 06:56:36 +0000 (08:56 +0200)
commit0d72b92883c651a11059d93335f33d65c6eb653b
treeb949538682a6267456639f50786e83ce312d78d0
parentb3030e4f23441347cd5d18b2610fb299ed98d739
fs: pass the request_mask to generic_fillattr

generic_fillattr just fills in the entire stat struct indiscriminately
today, copying data from the inode. There is at least one attribute
(STATX_CHANGE_COOKIE) that can have side effects when it is reported,
and we're looking at adding more with the addition of multigrain
timestamps.

Add a request_mask argument to generic_fillattr and have most callers
just pass in the value that is passed to getattr. Have other callers
(e.g. ksmbd) just pass in STATX_BASIC_STATS. Also move the setting of
STATX_CHANGE_COOKIE into generic_fillattr.

Acked-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: "Paulo Alcantara (SUSE)" <pc@manguebit.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Message-Id: <20230807-mgctime-v7-2-d1dec143a704@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
40 files changed:
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c
fs/afs/inode.c
fs/btrfs/inode.c
fs/ceph/inode.c
fs/coda/inode.c
fs/ecryptfs/inode.c
fs/erofs/inode.c
fs/exfat/file.c
fs/ext2/inode.c
fs/ext4/inode.c
fs/f2fs/file.c
fs/fat/file.c
fs/fuse/dir.c
fs/gfs2/inode.c
fs/hfsplus/inode.c
fs/kernfs/inode.c
fs/libfs.c
fs/minix/inode.c
fs/nfs/inode.c
fs/nfs/namespace.c
fs/ntfs3/file.c
fs/ocfs2/file.c
fs/orangefs/inode.c
fs/proc/base.c
fs/proc/fd.c
fs/proc/generic.c
fs/proc/proc_net.c
fs/proc/proc_sysctl.c
fs/proc/root.c
fs/smb/client/inode.c
fs/smb/server/smb2pdu.c
fs/smb/server/vfs.c
fs/stat.c
fs/sysv/itree.c
fs/ubifs/dir.c
fs/udf/symlink.c
fs/vboxsf/utils.c
include/linux/fs.h
mm/shmem.c