On Mon 08-04-24 11:55:13, Namhyung Kim wrote: > To pick up the changes from: > > 41bcbe59c3b3f ("fs: FS_IOC_GETUUID") > ae8c511757304 ("fs: add FS_IOC_GETFSSYSFSPATH") > 73fa7547c70b3 ("vfs: add RWF_NOAPPEND flag for pwritev2") > > This should be used to beautify fs syscall arguments and it addresses > these tools/perf build warnings: > > Warning: Kernel ABI header differences: > diff -u tools/include/uapi/linux/fs.h include/uapi/linux/fs.h > > Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> > Cc: Christian Brauner <brauner@xxxxxxxxxx> > Cc: Jan Kara <jack@xxxxxxx> > Cc: linux-fsdevel@xxxxxxxxxxxxxxx > Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx> Makes sense. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > tools/include/uapi/linux/fs.h | 30 +++++++++++++++++++++++++++++- > 1 file changed, 29 insertions(+), 1 deletion(-) > > diff --git a/tools/include/uapi/linux/fs.h b/tools/include/uapi/linux/fs.h > index 48ad69f7722e..45e4e64fd664 100644 > --- a/tools/include/uapi/linux/fs.h > +++ b/tools/include/uapi/linux/fs.h > @@ -64,6 +64,24 @@ struct fstrim_range { > __u64 minlen; > }; > > +/* > + * We include a length field because some filesystems (vfat) have an identifier > + * that we do want to expose as a UUID, but doesn't have the standard length. > + * > + * We use a fixed size buffer beacuse this interface will, by fiat, never > + * support "UUIDs" longer than 16 bytes; we don't want to force all downstream > + * users to have to deal with that. > + */ > +struct fsuuid2 { > + __u8 len; > + __u8 uuid[16]; > +}; > + > +struct fs_sysfs_path { > + __u8 len; > + __u8 name[128]; > +}; > + > /* extent-same (dedupe) ioctls; these MUST match the btrfs ioctl definitions */ > #define FILE_DEDUPE_RANGE_SAME 0 > #define FILE_DEDUPE_RANGE_DIFFERS 1 > @@ -215,6 +233,13 @@ struct fsxattr { > #define FS_IOC_FSSETXATTR _IOW('X', 32, struct fsxattr) > #define FS_IOC_GETFSLABEL _IOR(0x94, 49, char[FSLABEL_MAX]) > #define FS_IOC_SETFSLABEL _IOW(0x94, 50, char[FSLABEL_MAX]) > +/* Returns the external filesystem UUID, the same one blkid returns */ > +#define FS_IOC_GETFSUUID _IOR(0x15, 0, struct fsuuid2) > +/* > + * Returns the path component under /sys/fs/ that refers to this filesystem; > + * also /sys/kernel/debug/ for filesystems with debugfs exports > + */ > +#define FS_IOC_GETFSSYSFSPATH _IOR(0x15, 1, struct fs_sysfs_path) > > /* > * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS) > @@ -301,9 +326,12 @@ typedef int __bitwise __kernel_rwf_t; > /* per-IO O_APPEND */ > #define RWF_APPEND ((__force __kernel_rwf_t)0x00000010) > > +/* per-IO negation of O_APPEND */ > +#define RWF_NOAPPEND ((__force __kernel_rwf_t)0x00000020) > + > /* mask of flags supported by the kernel */ > #define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\ > - RWF_APPEND) > + RWF_APPEND | RWF_NOAPPEND) > > /* Pagemap ioctl */ > #define PAGEMAP_SCAN _IOWR('f', 16, struct pm_scan_arg) > -- > 2.44.0.478.gd926399ef9-goog > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR