On Fri, 18 Jul 2025 at 01:27, Darrick J. Wong <djwong@xxxxxxxxxx> wrote: > > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > Actually copy the attributes/attributes_mask from userspace. > > Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> > --- > fs/fuse/dir.c | 2 ++ > 1 file changed, 2 insertions(+) > > > diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c > index 45b4c3cc1396af..4d841869ba3d0a 100644 > --- a/fs/fuse/dir.c > +++ b/fs/fuse/dir.c > @@ -1285,6 +1285,8 @@ static int fuse_do_statx(struct mnt_idmap *idmap, struct inode *inode, > stat->result_mask = sx->mask & (STATX_BASIC_STATS | STATX_BTIME); > stat->btime.tv_sec = sx->btime.tv_sec; > stat->btime.tv_nsec = min_t(u32, sx->btime.tv_nsec, NSEC_PER_SEC - 1); > + stat->attributes = sx->attributes; > + stat->attributes_mask = sx->attributes_mask; fuse_update_get_attr() has a cached and an uncached branch and these fields are only getting set in the uncached case. Thanks, Miklos