diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2023-08-10 12:45:05 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2023-08-16 12:39:38 +0200 |
commit | ba58a37c2847f21494a04240fb48955cbd5d1aca (patch) | |
tree | 47cfd9cde7de9c89bac26c4f63f56dd3aaad4a55 /include/uapi/linux | |
parent | 8d8f9c4b8df6bc2bf005c91b73b23a0e60f0e413 (diff) | |
download | linux-ba58a37c2847f21494a04240fb48955cbd5d1aca.tar.gz linux-ba58a37c2847f21494a04240fb48955cbd5d1aca.tar.bz2 linux-ba58a37c2847f21494a04240fb48955cbd5d1aca.zip |
fuse: add STATX request
Use the same structure as statx.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r-- | include/uapi/linux/fuse.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h index c2da9503b04e..db92a7202b34 100644 --- a/include/uapi/linux/fuse.h +++ b/include/uapi/linux/fuse.h @@ -210,6 +210,7 @@ * * 7.39 * - add FUSE_DIRECT_IO_RELAX + * - add FUSE_STATX and related structures */ #ifndef _LINUX_FUSE_H @@ -272,6 +273,40 @@ struct fuse_attr { uint32_t flags; }; +/* + * The following structures are bit-for-bit compatible with the statx(2) ABI in + * Linux. + */ +struct fuse_sx_time { + int64_t tv_sec; + uint32_t tv_nsec; + int32_t __reserved; +}; + +struct fuse_statx { + uint32_t mask; + uint32_t blksize; + uint64_t attributes; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint16_t mode; + uint16_t __spare0[1]; + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t attributes_mask; + struct fuse_sx_time atime; + struct fuse_sx_time btime; + struct fuse_sx_time ctime; + struct fuse_sx_time mtime; + uint32_t rdev_major; + uint32_t rdev_minor; + uint32_t dev_major; + uint32_t dev_minor; + uint64_t __spare2[14]; +}; + struct fuse_kstatfs { uint64_t blocks; uint64_t bfree; @@ -581,6 +616,7 @@ enum fuse_opcode { FUSE_REMOVEMAPPING = 49, FUSE_SYNCFS = 50, FUSE_TMPFILE = 51, + FUSE_STATX = 52, /* CUSE specific operations */ CUSE_INIT = 4096, @@ -645,6 +681,22 @@ struct fuse_attr_out { struct fuse_attr attr; }; +struct fuse_statx_in { + uint32_t getattr_flags; + uint32_t reserved; + uint64_t fh; + uint32_t sx_flags; + uint32_t sx_mask; +}; + +struct fuse_statx_out { + uint64_t attr_valid; /* Cache timeout for the attributes */ + uint32_t attr_valid_nsec; + uint32_t flags; + uint64_t spare[2]; + struct fuse_statx stat; +}; + #define FUSE_COMPAT_MKNOD_IN_SIZE 8 struct fuse_mknod_in { |