Whamcloud - gitweb
LU-3222 ofd: use of ofd_XXX helpers
[fs/lustre-release.git] / lustre / ofd / ofd_obd.c
index 79aad45..4255c04 100644 (file)
@@ -45,6 +45,7 @@
 #include <lustre/lustre_idl.h>
 #include "ofd_internal.h"
 #include <obd_cksum.h>
+#include <lustre_ioctl.h>
 #include <lustre_quota.h>
 #include <lustre_lfsck.h>
 
@@ -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,