From 85d097f639518670c57827513b02f497950071de Mon Sep 17 00:00:00 2001 From: Amir Goldstein Date: Tue, 1 Jul 2025 16:06:44 +0200 Subject: [PATCH] fuse: return -EOPNOTSUPP from ->fileattr_[gs]et() instead of -ENOTTY As part of changing calling convenstion of ->fileattr_[gs]et() to return -EOPNOTSUPP and fix related overlayfs code. Signed-off-by: Amir Goldstein --- fs/fuse/ioctl.c | 4 ++++ fs/overlayfs/copy_up.c | 2 +- fs/overlayfs/inode.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/fuse/ioctl.c b/fs/fuse/ioctl.c index 2d9abf48828f..f2692f7d5932 100644 --- a/fs/fuse/ioctl.c +++ b/fs/fuse/ioctl.c @@ -536,6 +536,8 @@ int fuse_fileattr_get(struct dentry *dentry, struct fileattr *fa) cleanup: fuse_priv_ioctl_cleanup(inode, ff); + if (err == -ENOTTY) + err = -EOPNOTSUPP; return err; } @@ -572,5 +574,7 @@ int fuse_fileattr_set(struct mnt_idmap *idmap, cleanup: fuse_priv_ioctl_cleanup(inode, ff); + if (err == -ENOTTY) + err = -EOPNOTSUPP; return err; } diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c index d7310fcf3888..2c646b7076d0 100644 --- a/fs/overlayfs/copy_up.c +++ b/fs/overlayfs/copy_up.c @@ -178,7 +178,7 @@ static int ovl_copy_fileattr(struct inode *inode, const struct path *old, err = ovl_real_fileattr_get(old, &oldfa); if (err) { /* Ntfs-3g returns -EINVAL for "no fileattr support" */ - if (err == -ENOTTY || err == -EINVAL) + if (err == -EOPNOTSUPP || err == -EINVAL) return 0; pr_warn("failed to retrieve lower fileattr (%pd2, err=%i)\n", old->dentry, err); diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c index 6f0e15f86c21..92754749f316 100644 --- a/fs/overlayfs/inode.c +++ b/fs/overlayfs/inode.c @@ -722,7 +722,7 @@ int ovl_real_fileattr_get(const struct path *realpath, struct fileattr *fa) err = vfs_fileattr_get(realpath->dentry, fa); if (err == -ENOIOCTLCMD) - err = -ENOTTY; + err = -EOPNOTSUPP; return err; } -- 2.43.0