On Tue 01-07-25 08:05:45, Amir Goldstein wrote: > On Mon, Jun 30, 2025 at 6:20 PM Andrey Albershteyn <aalbersh@xxxxxxxxxx> wrote: > > > > Future patches will add new syscalls which use these functions. As > > this interface won't be used for ioctls only, the EOPNOSUPP is more > > appropriate return code. > > > > This patch converts return code from ENOIOCTLCMD to EOPNOSUPP for > > vfs_fileattr_get and vfs_fileattr_set. To save old behavior translate > > EOPNOSUPP back for current users - overlayfs, encryptfs and fs/ioctl.c. > > > > Signed-off-by: Andrey Albershteyn <aalbersh@xxxxxxxxxx> ... > > --- a/fs/overlayfs/inode.c > > +++ b/fs/overlayfs/inode.c > > @@ -721,7 +721,7 @@ int ovl_real_fileattr_get(const struct path *realpath, struct fileattr *fa) > > return err; > > > > err = vfs_fileattr_get(realpath->dentry, fa); > > - if (err == -ENOIOCTLCMD) > > + if (err == -EOPNOTSUPP) > > err = -ENOTTY; > > return err; > > } > > That's the wrong way, because it hides the desired -EOPNOTSUPP > return code from ovl_fileattr_get(). > > The conversion to -ENOTTY was done for > 5b0a414d06c3 ("ovl: fix filattr copy-up failure"), > so please do this instead: > > --- 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; Is this really needed? AFAICS nobody returns ENOIOCTLCMD after this patch... Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR