X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fofd%2Fofd_obd.c;h=4255c049bb7010b4e6b6fe5d3056d195097d9df2;hp=79aad456fe816fb3cb7805605b8115827de04d3f;hb=f6dc0994f2bb5d2624e622213b634e74a1c76e3f;hpb=0209add4a5099817111c8576afe930d1e2daef03 diff --git a/lustre/ofd/ofd_obd.c b/lustre/ofd/ofd_obd.c index 79aad45..4255c04 100644 --- a/lustre/ofd/ofd_obd.c +++ b/lustre/ofd/ofd_obd.c @@ -45,6 +45,7 @@ #include #include "ofd_internal.h" #include +#include #include #include @@ -311,7 +312,7 @@ out: int ofd_obd_disconnect(struct obd_export *exp) { - struct ofd_device *ofd = ofd_dev(exp->exp_obd->obd_lu_dev); + struct ofd_device *ofd = ofd_exp(exp); struct lu_env env; int rc; @@ -369,7 +370,7 @@ static int ofd_init_export(struct obd_export *exp) static int ofd_destroy_export(struct obd_export *exp) { - struct ofd_device *ofd = ofd_dev(exp->exp_obd->obd_lu_dev); + struct ofd_device *ofd = ofd_exp(exp); if (exp->exp_filter_data.fed_pending) CERROR("%s: cli %s/%p has %lu pending on destroyed export" @@ -409,8 +410,18 @@ static int ofd_destroy_export(struct obd_export *exp) int ofd_postrecov(const struct lu_env *env, struct ofd_device *ofd) { struct lu_device *ldev = &ofd->ofd_dt_dev.dd_lu_dev; + struct lfsck_start_param lsp; + int rc; + + CDEBUG(D_HA, "%s: recovery is over\n", ofd_name(ofd)); + + lsp.lsp_start = NULL; + lsp.lsp_index_valid = 0; + rc = lfsck_start(env, ofd->ofd_osd, &lsp); + if (rc != 0 && rc != -EALREADY) + CWARN("%s: auto trigger paused LFSCK failed: rc = %d\n", + ofd_name(ofd), rc); - CDEBUG(D_HA, "%s: recovery is over\n", ofd_obd(ofd)->obd_name); return ldev->ld_ops->ldo_recovery_complete(env, ldev); } @@ -595,7 +606,7 @@ int ofd_statfs(const struct lu_env *env, struct obd_export *exp, struct obd_statfs *osfs, __u64 max_age, __u32 flags) { struct obd_device *obd = class_exp2obd(exp); - struct ofd_device *ofd = ofd_dev(exp->exp_obd->obd_lu_dev); + struct ofd_device *ofd = ofd_exp(exp); int rc; ENTRY; @@ -1169,6 +1180,7 @@ struct obd_ops ofd_obd_ops = { .o_reconnect = ofd_obd_reconnect, .o_disconnect = ofd_obd_disconnect, .o_create = ofd_echo_create, + .o_statfs = ofd_statfs, .o_setattr = ofd_echo_setattr, .o_preprw = ofd_preprw, .o_commitrw = ofd_commitrw,