X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_lfsck.h;h=4c86cfe48b2358e94a59324326266d635fdaa9d0;hb=fffe8ac7e42b6638bff9fe19c4bfeb6635023c92;hp=7a14fdc6268f22fb25c30c647acc1287d0414edc;hpb=7f66fe7572a2a8ab6711146bdea67d04e6381b4b;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_lfsck.h b/lustre/include/lustre_lfsck.h index 7a14fdc..4c86cfe 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 @@ -111,34 +111,26 @@ enum lfsck_status { }; struct lfsck_start_param { - struct ldlm_namespace *lsp_namespace; 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, -}; - -enum lfsck_event_flags { - LEF_TO_OST = 0x00000001, - LEF_FROM_OST = 0x00000002, - LEF_FORCE_STOP = 0x00000004, +/* 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, enum lfsck_events event); +int lfsck_register_namespace(const struct lu_env *env, struct dt_device *key, + struct ldlm_namespace *ns); int lfsck_register(const struct lu_env *env, struct dt_device *key, - struct dt_device *next, lfsck_out_notify notify, - void *notify_data, bool master); + struct dt_device *next, struct obd_device *obd, + lfsck_out_notify notify, void *notify_data, bool master); void lfsck_degister(const struct lu_env *env, struct dt_device *key); int lfsck_add_target(const struct lu_env *env, struct dt_device *key, @@ -152,15 +144,25 @@ 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); -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, + __u32 event, __u16 com) +{ + memset(lr, 0, sizeof(*lr)); + lr->lr_fid = *fid; + lr->lr_event = event; + lr->lr_active = com; +} #endif /* _LUSTRE_LFSCK_H */