X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_lfsck.h;h=ee7d7839f8b4e69238a249b436385b6360d2dfcc;hb=e14246641c04c9e3004043f58f469532223d06d6;hp=b23540eef9ac855bf87e2027b9d34aade525edc1;hpb=f1171da4e06b9974caf614d6eaa9e037728bab1e;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_lfsck.h b/lustre/include/lustre_lfsck.h index b23540e..ee7d783 100644 --- a/lustre/include/lustre_lfsck.h +++ b/lustre/include/lustre_lfsck.h @@ -20,7 +20,7 @@ * GPL HEADER END */ /* - * Copyright (c) 2013, Intel Corporation. + * Copyright (c) 2013, 2014, Intel Corporation. */ /* * lustre/include/lustre_lfsck.h @@ -38,100 +38,17 @@ #include #include -/** - * status machine: - * - * LS_INIT - * | - * (lfsck|start) - * | - * v - * LS_SCANNING_PHASE1 - * | ^ - * | : - * | (lfsck:restart) - * | : - * v : - * ----------------------------------------------------------------- - * | |^ |^ |^ |^ |^ - * | |: |: |: |: |: - * v v: v: v: v: v: - * LS_SCANNING_PHASE2 LS_FAILED LS_STOPPED LS_PAUSED LS_CRASHED LS_PARTIAL - * (CO_) (CO_) (CO_) - * | ^ ^: ^: ^: ^: ^: - * | : |: |: |: |: |: - * | (lfsck:restart) |: |: |: |: |: - * v : |v |v |v |v |v - * ----------------------------------------------------------------- - * | - * v - * LS_COMPLETED - */ -enum lfsck_status { - /* The lfsck file is new created, for new MDT, upgrading from old disk, - * or re-creating the lfsck file manually. */ - LS_INIT = 0, - - /* The first-step system scanning. */ - LS_SCANNING_PHASE1 = 1, - - /* The second-step system scanning. */ - LS_SCANNING_PHASE2 = 2, - - /* The LFSCK processing has completed for all objects. */ - LS_COMPLETED = 3, - - /* The LFSCK exited automatically for failure, will not auto restart. */ - LS_FAILED = 4, - - /* The LFSCK is stopped manually, will not auto restart. */ - LS_STOPPED = 5, - - /* LFSCK is paused automatically when umount, - * will be restarted automatically when remount. */ - LS_PAUSED = 6, - - /* System crashed during the LFSCK, - * will be restarted automatically after recovery. */ - LS_CRASHED = 7, - - /* Some OST/MDT failed during the LFSCK, or not join the LFSCK. */ - LS_PARTIAL = 8, - - /* The LFSCK is failed because its controller is failed. */ - LS_CO_FAILED = 9, - - /* The LFSCK is stopped because its controller is stopped. */ - LS_CO_STOPPED = 10, - - /* The LFSCK is paused because its controller is paused. */ - LS_CO_PAUSED = 11, - - LS_MAX -}; - struct lfsck_start_param { struct lfsck_start *lsp_start; __u32 lsp_index; unsigned int lsp_index_valid:1; }; -enum lfsck_events { - LE_LASTID_REBUILDING = 1, - LE_LASTID_REBUILT = 2, - LE_PHASE1_DONE = 3, - LE_PHASE2_DONE = 4, - LE_START = 5, - LE_STOP = 6, - LE_QUERY = 7, - LE_FID_ACCESSED = 8, - LE_PEER_EXIT = 9, - LE_CONDITIONAL_DESTROY = 10, -}; - -enum lfsck_event_flags { - LEF_TO_OST = 0x00000001, - LEF_FROM_OST = 0x00000002, +/* For LE_PAIRS_VERIFY returned status */ +enum lfsck_pv_status { + LPVS_INIT = 0, + LPVS_INCONSISTENT = 1, + LPVS_INCONSISTENT_TOFIX = 2, }; typedef int (*lfsck_out_notify)(const struct lu_env *env, void *data, @@ -155,24 +72,26 @@ int lfsck_start(const struct lu_env *env, struct dt_device *key, int lfsck_stop(const struct lu_env *env, struct dt_device *key, struct lfsck_stop *stop); int lfsck_in_notify(const struct lu_env *env, struct dt_device *key, - struct lfsck_request *lr); + struct lfsck_request *lr, struct thandle *th); int lfsck_query(const struct lu_env *env, struct dt_device *key, - struct lfsck_request *lr); + struct lfsck_request *req, struct lfsck_reply *rep, + struct lfsck_query *que); -int lfsck_get_speed(struct dt_device *key, void *buf, int len); +int lfsck_get_speed(struct seq_file *m, struct dt_device *key); int lfsck_set_speed(struct dt_device *key, int val); -int lfsck_get_windows(struct dt_device *key, void *buf, int len); +int lfsck_get_windows(struct seq_file *m, struct dt_device *key); int lfsck_set_windows(struct dt_device *key, int val); -int lfsck_dump(struct dt_device *key, void *buf, int len, enum lfsck_type type); +int lfsck_dump(struct seq_file *m, struct dt_device *key, enum lfsck_type type); static inline void lfsck_pack_rfa(struct lfsck_request *lr, - const struct lu_fid *fid) + const struct lu_fid *fid, + __u32 event, __u16 com) { memset(lr, 0, sizeof(*lr)); - lr->lr_event = LE_FID_ACCESSED; - lr->lr_active = LT_LAYOUT; lr->lr_fid = *fid; + lr->lr_event = event; + lr->lr_active = com; } #endif /* _LUSTRE_LFSCK_H */