xfs
[Top] [All Lists]

[PATCH 05/24] xfs: create an ioctl to scrub AG metadata

To: david@xxxxxxxxxxxxx, darrick.wong@xxxxxxxxxx
Subject: [PATCH 05/24] xfs: create an ioctl to scrub AG metadata
From: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx>
Date: Thu, 25 Aug 2016 16:55:50 -0700
Cc: linux-xfs@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <147216931783.6398.1716678878794493264.stgit@xxxxxxxxxxxxxxxx>
References: <147216931783.6398.1716678878794493264.stgit@xxxxxxxxxxxxxxxx>
User-agent: StGit/0.17.1-dirty
Create an ioctl that can be used to scrub internal filesystem
metadata.  The new ioctl takes the metadata type, an (optional)
AG number, and a flags argument.  This will be used by the
upcoming XFS online scrub tool.

Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
---
 libxfs/xfs_fs.h |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)


diff --git a/libxfs/xfs_fs.h b/libxfs/xfs_fs.h
index 11149fa..6cb3cff 100644
--- a/libxfs/xfs_fs.h
+++ b/libxfs/xfs_fs.h
@@ -548,6 +548,21 @@ typedef struct xfs_swapext
 #define XFS_FSOP_GOING_FLAGS_LOGFLUSH          0x1     /* flush log but not 
data */
 #define XFS_FSOP_GOING_FLAGS_NOLOGFLUSH                0x2     /* don't flush 
log nor data */
 
+/* metadata scrubbing */
+struct xfs_scrub_metadata {
+       __u32 type;             /* What to check? */
+       __u32 flags;            /* Flags; none defined right now. */
+       __u64 control;          /* AG or inode number */
+       __u64 reserved[6];      /* Must be zero. */
+};
+
+/*
+ * Metadata types and flags for scrub operation.
+ */
+#define XFS_SCRUB_TYPE_MAX     0
+
+#define XFS_SCRUB_FLAGS_ALL    0x0     /* no flags yet */
+
 /*
  * ioctl limits
  */
@@ -588,6 +603,7 @@ typedef struct xfs_swapext
 #define XFS_IOC_ZERO_RANGE     _IOW ('X', 57, struct xfs_flock64)
 #define XFS_IOC_FREE_EOFBLOCKS _IOR ('X', 58, struct xfs_fs_eofblocks)
 #define XFS_IOC_GETFSMAP       _IOWR('X', 59, struct getfsmap)
+#define XFS_IOC_SCRUB_METADATA _IOR ('X', 60, struct xfs_scrub_metadata)
 
 /*
  * ioctl commands that replace IRIX syssgi()'s

<Prev in Thread] Current Thread [Next in Thread>