Whamcloud - gitweb
LU-5512 lfsck: repair dangling name entry
[fs/lustre-release.git] / lustre / include / lustre / lustre_lfsck_user.h
index 2232ea7..a740534 100644 (file)
 
 #ifndef _LUSTRE_LFSCK_USER_H
 # define _LUSTRE_LFSCK_USER_H
+# include <lustre/lustre_user.h>
 
 enum lfsck_param_flags {
        /* Reset LFSCK iterator position to the device beginning. */
-       LPF_RESET       = 0x0001,
+       LPF_RESET               = 0x0001,
 
        /* Exit when fail. */
-       LPF_FAILOUT     = 0x0002,
+       LPF_FAILOUT             = 0x0002,
 
        /* Dryrun mode, only check without modification */
-       LPF_DRYRUN      = 0x0004,
+       LPF_DRYRUN              = 0x0004,
 
-       /* Start/stop LFSCK on all MDT devices. */
-       LPF_ALL_MDT     = 0x0008,
+       /* LFSCK runs on all targets. */
+       LPF_ALL_TGT             = 0x0008,
 
-       /* Broadcast the command to other MDTs. */
-       LPF_BROADCAST   = 0x0010,
-};
+       /* Broadcast the command to other MDTs. Only valid on the sponsor MDT */
+       LPF_BROADCAST           = 0x0010,
 
-enum lfsck_type {
-       /* For MDT-OST consistency check/repair. */
-       LT_LAYOUT       = 0x0001,
+       /* Handle orphan OST-objects. */
+       LPF_OST_ORPHAN          = 0x0020,
+
+       /* Create OST-object for dangling LOV EA. */
+       LPF_CREATE_OSTOBJ       = 0x0040,
 
-       /* For MDT-MDT consistency check/repair. */
-       LT_DNE          = 0x0002,
+       /* Create MDT-object for dangling name entry. */
+       LPF_CREATE_MDTOBJ       = 0x0080,
+};
 
-       /* For FID-in-dirent and linkEA consistency check/repair. */
-       LT_NAMESPACE    = 0x0004,
+enum lfsck_type {
+       /* For MDT and OST internal OSD consistency check/repair. */
+       LFSCK_TYPE_SCRUB        = 0x0000,
+
+       /* For MDT-OST (layout, object) consistency check/repair. */
+       LFSCK_TYPE_LAYOUT       = 0x0001,
+
+       /* For MDT (FID-in-dirent, linkEA) consistency check/repair. */
+       LFSCK_TYPE_NAMESPACE    = 0x0004,
+       LFSCK_TYPES_SUPPORTED   = (LFSCK_TYPE_SCRUB | LFSCK_TYPE_LAYOUT |
+                                  LFSCK_TYPE_NAMESPACE),
+       LFSCK_TYPES_DEF         = LFSCK_TYPES_SUPPORTED,
+       LFSCK_TYPES_ALL         = ((__u16)(~0))
 };
 
 #define LFSCK_VERSION_V1       1
 #define LFSCK_VERSION_V2       2
 
-#define LFSCK_TYPES_ALL        ((__u16)(~0))
-#define LFSCK_TYPES_DEF        ((__u16)0)
-#define LFSCK_TYPES_SUPPORTED  (LT_LAYOUT | LT_NAMESPACE)
-
 #define LFSCK_SPEED_NO_LIMIT   0
 #define LFSCK_SPEED_LIMIT_DEF  LFSCK_SPEED_NO_LIMIT
 #define LFSCK_ASYNC_WIN_DEFAULT 1024
 #define LFSCK_ASYNC_WIN_MAX    ((__u16)(~0))
 
 enum lfsck_start_valid {
-       LSV_SPEED_LIMIT         = 0x00000001,
+       LSV_SPEED_LIMIT         = 0x00000001,
        LSV_ERROR_HANDLE        = 0x00000002,
        LSV_DRYRUN              = 0x00000004,
        LSV_ASYNC_WINDOWS       = 0x00000008,
+       LSV_CREATE_OSTOBJ       = 0x00000010,
+       LSV_CREATE_MDTOBJ       = 0x00000020,
 };
 
 /* Arguments for starting lfsck. */