From: Darrick J. Wong Date: Wed, 28 Aug 2019 16:08:09 +0000 (-0400) Subject: xfs: wire up new v5 bulkstat ioctls X-Git-Tag: v5.3.0-rc1~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9826f6b82ad134b04df8a67cfc53d4c72f58a244;p=thirdparty%2Fxfsprogs-dev.git xfs: wire up new v5 bulkstat ioctls Source kernel commit: 0448b6f488fa66e353a9e00022441cd4aca7f2cf Wire up the new v5 BULKSTAT ioctl. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster Signed-off-by: Eric Sandeen --- diff --git a/libxfs/xfs_fs.h b/libxfs/xfs_fs.h index 6bc8adf5c..c06c0602a 100644 --- a/libxfs/xfs_fs.h +++ b/libxfs/xfs_fs.h @@ -456,7 +456,6 @@ struct xfs_fsop_bulkreq { __s32 __user *ocount; /* output count pointer */ }; - /* * Structures returned from xfs_inumbers routine (XFS_IOC_FSINUMBERS). */ @@ -478,6 +477,28 @@ struct xfs_inumbers { #define XFS_INUMBERS_VERSION_V1 (1) #define XFS_INUMBERS_VERSION_V5 (5) +/* Header for bulk inode requests. */ +struct xfs_bulk_ireq { + uint64_t ino; /* I/O: start with this inode */ + uint32_t flags; /* I/O: operation flags */ + uint32_t icount; /* I: count of entries in buffer */ + uint32_t ocount; /* O: count of entries filled out */ + uint32_t reserved32; /* must be zero */ + uint64_t reserved[5]; /* must be zero */ +}; + +#define XFS_BULK_IREQ_FLAGS_ALL (0) + +/* + * ioctl structures for v5 bulkstat and inumbers requests + */ +struct xfs_bulkstat_req { + struct xfs_bulk_ireq hdr; + struct xfs_bulkstat bulkstat[]; +}; +#define XFS_BULKSTAT_REQ_SIZE(nr) (sizeof(struct xfs_bulkstat_req) + \ + (nr) * sizeof(struct xfs_bulkstat)) + /* * Error injection. */ @@ -780,6 +801,7 @@ struct xfs_scrub_metadata { /* For compatibility, for now */ /* #define XFS_IOC_FSGEOMETRY _IOR ('X', 126, struct xfs_fsop_geom_v5) */ #define XFS_IOC_FSGEOMETRY XFS_IOC_FSGEOMETRY_V4 +#define XFS_IOC_BULKSTAT _IOR ('X', 127, struct xfs_bulkstat_req) /* XFS_IOC_GETFSUUID ---------- deprecated 140 */