#include <lustre_param.h>
#include <lustre_quota.h>
#include <lustre_linkea.h>
+#include <lustre_lfsck.h>
mdl_mode_t mdt_mdl_lock_modes[] = {
[LCK_MINMODE] = MDL_MINMODE,
m->mdt_nosquash_strlen = 0;
}
- next->md_ops->mdo_iocontrol(env, next, OBD_IOC_PAUSE_LFSCK,
- 0, NULL);
+ next->md_ops->mdo_iocontrol(env, next, OBD_IOC_PAUSE_LFSCK, 0, NULL);
+
mdt_seq_fini(env, m);
mdt_fld_fini(env, m);
sptlrpc_rule_set_free(&m->mdt_sptlrpc_rset);
struct mdt_device *mdt = mdt_dev(cdev);
struct lu_device *next = &mdt->mdt_child->md_lu_dev;
struct obd_device *obd = cdev->ld_obd;
+ struct lfsck_start_param lsp;
int rc;
ENTRY;
if (rc)
RETURN(rc);
+ lsp.lsp_start = NULL;
+ lsp.lsp_namespace = mdt->mdt_namespace;
rc = mdt->mdt_child->md_ops->mdo_iocontrol(env, mdt->mdt_child,
OBD_IOC_START_LFSCK,
- 0, NULL);
+ 0, &lsp);
if (rc != 0) {
CWARN("%s: auto trigger paused LFSCK failed: rc = %d\n",
mdt_obd_name(mdt), rc);
case OBD_IOC_CHANGELOG_CLEAR:
rc = mdt_ioc_child(&env, mdt, cmd, len, karg);
break;
- case OBD_IOC_START_LFSCK:
- case OBD_IOC_STOP_LFSCK: {
+ case OBD_IOC_START_LFSCK: {
struct md_device *next = mdt->mdt_child;
struct obd_ioctl_data *data = karg;
+ struct lfsck_start_param lsp;
if (unlikely(data == NULL)) {
rc = -EINVAL;
break;
}
- rc = next->md_ops->mdo_iocontrol(&env, next, cmd,
- data->ioc_inllen1,
- data->ioc_inlbuf1);
+ lsp.lsp_start = (struct lfsck_start *)(data->ioc_inlbuf1);
+ lsp.lsp_namespace = mdt->mdt_namespace;
+ rc = next->md_ops->mdo_iocontrol(&env, next, cmd, 0, &lsp);
+ break;
+ }
+ case OBD_IOC_STOP_LFSCK: {
+ struct md_device *next = mdt->mdt_child;
+
+ rc = next->md_ops->mdo_iocontrol(&env, next, cmd, 0, NULL);
break;
}
case OBD_IOC_GET_OBJ_VERSION: {