Re: [PATCH 07/16] fs: add inode operations to get/set/remove fscaps

From: Seth Forshee (DigitalOcean)
Date: Fri Dec 01 2023 - 12:38:40 EST


On Fri, Dec 01, 2023 at 06:02:55PM +0100, Christian Brauner wrote:
> On Wed, Nov 29, 2023 at 03:50:25PM -0600, Seth Forshee (DigitalOcean) wrote:
> > Add inode operations for getting, setting and removing filesystem
> > capabilities rather than passing around raw xattr data. This provides
> > better type safety for ids contained within xattrs.
> >
> > Signed-off-by: Seth Forshee (DigitalOcean) <sforshee@xxxxxxxxxx>
> > ---
> > include/linux/fs.h | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/include/linux/fs.h b/include/linux/fs.h
> > index 98b7a7a8c42e..a0a77f67b999 100644
> > --- a/include/linux/fs.h
> > +++ b/include/linux/fs.h
> > @@ -2002,6 +2002,11 @@ struct inode_operations {
> > int);
> > int (*set_acl)(struct mnt_idmap *, struct dentry *,
> > struct posix_acl *, int);
> > + int (*get_fscaps)(struct mnt_idmap *, struct dentry *,
> > + struct vfs_caps *);
> > + int (*set_fscaps)(struct mnt_idmap *, struct dentry *,
> > + const struct vfs_caps *, int flags);
>
> If it's really a flags argument, then unsigned int, please,

This is the flags for setxattr, which is an int everywhere. Or almost
everywhere; I just noticed that it is actually an unsigned int in struct
xattr_ctx. But for consistency I think it makes sense to have it be an
int here too. Though maybe naming it setxattr_flags would be helpful for
clarity.