diff options
author | Jeff Layton <jlayton@kernel.org> | 2023-08-07 15:38:33 -0400 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2023-08-09 08:56:36 +0200 |
commit | 0d72b92883c651a11059d93335f33d65c6eb653b (patch) | |
tree | b949538682a6267456639f50786e83ce312d78d0 /fs/exfat | |
parent | b3030e4f23441347cd5d18b2610fb299ed98d739 (diff) | |
download | linux-stable-0d72b92883c651a11059d93335f33d65c6eb653b.tar.gz linux-stable-0d72b92883c651a11059d93335f33d65c6eb653b.tar.bz2 linux-stable-0d72b92883c651a11059d93335f33d65c6eb653b.zip |
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>
Diffstat (limited to 'fs/exfat')
-rw-r--r-- | fs/exfat/file.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/exfat/file.c b/fs/exfat/file.c index f40ecfeee3a4..32395ef686a2 100644 --- a/fs/exfat/file.c +++ b/fs/exfat/file.c @@ -232,7 +232,7 @@ int exfat_getattr(struct mnt_idmap *idmap, const struct path *path, struct inode *inode = d_backing_inode(path->dentry); struct exfat_inode_info *ei = EXFAT_I(inode); - generic_fillattr(&nop_mnt_idmap, inode, stat); + generic_fillattr(&nop_mnt_idmap, request_mask, inode, stat); exfat_truncate_atime(&stat->atime); stat->result_mask |= STATX_BTIME; stat->btime.tv_sec = ei->i_crtime.tv_sec; |