/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 only, * as published by the Free Software Foundation. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License version 2 for more details. A copy is * included in the COPYING file that accompanied this code. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * GPL HEADER END */ /* * Copyright (c) 2013, Intel Corporation. */ /* * lustre/include/lustre_lfsck.h * * Lustre LFSCK exported functions. * * Author: Fan, Yong */ #ifndef _LUSTRE_LFSCK_H # define _LUSTRE_LFSCK_H #include #include #include #include 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, LS_MAX }; struct lfsck_start_param { struct lfsck_start *lsp_start; struct ldlm_namespace *lsp_namespace; }; int lfsck_register(const struct lu_env *env, struct dt_device *key, struct dt_device *next, bool master); void lfsck_degister(const struct lu_env *env, struct dt_device *key); int lfsck_start(const struct lu_env *env, struct dt_device *key, struct lfsck_start_param *lsp); int lfsck_stop(const struct lu_env *env, struct dt_device *key, bool pause); int lfsck_get_speed(struct dt_device *key, void *buf, int len); int lfsck_set_speed(struct dt_device *key, int val); int lfsck_dump(struct dt_device *key, void *buf, int len, enum lfsck_type type); #endif /* _LUSTRE_LFSCK_H */