* GPL HEADER END
*/
/*
- * Copyright (c) 2012 Whamcloud, Inc.
+ * Copyright (c) 2012, 2013, Intel Corporation.
*/
/*
* lustre/include/lustre/lustre_lfsck_user.h
*
* Lustre LFSCK userspace interfaces.
*
- * Author: Fan Yong <yong.fan@whamcloud.com>
+ * Author: Fan, Yong <fan.yong@intel.com>
*/
#ifndef _LUSTRE_LFSCK_USER_H
LPF_DRYRUN = 0x0004,
};
-enum lfsck_method {
- /* Object table based iteration, depends on backend filesystem.
- * For ldiskfs, it is inode table based iteration. */
- LM_OTABLE = 1,
-
- /* Namespace based scanning. NOT support yet. */
- LM_NAMESPACE = 2,
-};
-
enum lfsck_type {
/* For MDT-OST consistency check/repair. */
LT_LAYOUT = 0x0001,
/* For MDT-MDT consistency check/repair. */
LT_DNE = 0x0002,
+
+ /* For FID-in-dirent and linkEA consistency check/repair. */
+ LT_NAMESPACE = 0x0004,
};
-#define LFSCK_VERSION_V1 10
+#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_METHOD = 0x00000002,
- LSV_ERROR_HANDLE = 0x00000004,
- LSV_DRYRUN = 0x00000008,
+ LSV_ERROR_HANDLE = 0x00000002,
+ LSV_DRYRUN = 0x00000004,
+ LSV_ASYNC_WINDOWS = 0x00000008,
};
/* Arguments for starting lfsck. */
/* Which arguments are valid, see 'enum lfsck_start_valid'. */
__u32 ls_valid;
+ /* How many items can be scanned at most per second. */
+ __u32 ls_speed_limit;
+
/* For compatibility between user space tools and kernel service. */
__u16 ls_version;
/* Flags for the LFSCK, see 'enum lfsck_param_flags'. */
__u16 ls_flags;
- /* Object iteration method, see 'enum lfsck_method'. */
- __u16 ls_method;
+ /* The windows size for async requests pipeline. */
+ __u16 ls_async_windows;
+};
- /* How many items can be scanned at most per second. */
- __u32 ls_speed_limit;
+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 */