X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Flustre%2Flustre_lfsck_user.h;h=e116e077fc06c714f98447d976555f0549190479;hp=8daa152ea34243caa82cd45e1cb2d8bef38748d2;hb=4c4f74b0a581e139f3bf3db1a41d2b11594c039f;hpb=98060d83459ba10409f295898f0ec917f938b4d3 diff --git a/lustre/include/lustre/lustre_lfsck_user.h b/lustre/include/lustre/lustre_lfsck_user.h index 8daa152..e116e07 100644 --- a/lustre/include/lustre/lustre_lfsck_user.h +++ b/lustre/include/lustre/lustre_lfsck_user.h @@ -27,48 +27,68 @@ * * Lustre LFSCK userspace interfaces. * - * Author: Fan Yong + * Author: Fan, Yong */ #ifndef _LUSTRE_LFSCK_USER_H # define _LUSTRE_LFSCK_USER_H +# include 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, + + /* LFSCK runs on all targets. */ + LPF_ALL_TGT = 0x0008, + + /* Broadcast the command to other MDTs. Only valid on the sponsor MDT */ + LPF_BROADCAST = 0x0010, + + /* Handle orphan objects. */ + LPF_ORPHAN = 0x0020, + + /* Create OST-object for dangling LOV EA. */ + LPF_CREATE_OSTOBJ = 0x0040, }; enum lfsck_type { - /* For MDT-OST consistency check/repair. */ - LT_LAYOUT = 0x0001, + /* For MDT and OST internal OSD consistency check/repair. */ + LFSCK_TYPE_SCRUB = 0x0000, - /* For MDT-MDT consistency check/repair. */ - LT_DNE = 0x0002, + /* For MDT-OST (layout, object) consistency check/repair. */ + LFSCK_TYPE_LAYOUT = 0x0001, - /* For FID-in-dirent and linkEA consistency check/repair. */ - LT_NAMESPACE = 0x0004, + /* For MDT-MDT (remote object) consistency check/repair. */ + LFSCK_TYPE_DNE = 0x0002, + + /* 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_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, }; /* Arguments for starting lfsck. */ @@ -88,8 +108,15 @@ struct lfsck_start { /* Flags for the LFSCK, see 'enum lfsck_param_flags'. */ __u16 ls_flags; - /* For 64-bits aligned. */ - __u16 ls_padding; + /* The windows size for async requests pipeline. */ + __u16 ls_async_windows; +}; + +struct lfsck_stop { + __u32 ls_status; + __u16 ls_flags; + __u16 ls_padding_1; /* For 64-bits aligned. */ + __u64 ls_padding_2; }; #endif /* _LUSTRE_LFSCK_USER_H */