From dfb126e88a66d54def5bbad8ddce2e2c415b92bf Mon Sep 17 00:00:00 2001 From: Mikhail Pershin Date: Fri, 22 Oct 2010 18:32:23 +0400 Subject: [PATCH] b=20997 passthrough obd_force from lmv to mdc i=zam,vs --- lustre/lmv/lmv_obd.c | 11 +++++++++-- lustre/lov/lov_obd.c | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lustre/lmv/lmv_obd.c b/lustre/lmv/lmv_obd.c index e0aa6a8..d9b2c8c 100644 --- a/lustre/lmv/lmv_obd.c +++ b/lustre/lmv/lmv_obd.c @@ -625,8 +625,11 @@ static int lmv_disconnect_mdc(struct obd_device *obd, struct lmv_tgt_desc *tgt) mdc_obd = class_exp2obd(tgt->ltd_exp); - if (mdc_obd) + if (mdc_obd) { + mdc_obd->obd_force = obd->obd_force; + mdc_obd->obd_fail = obd->obd_fail; mdc_obd->obd_no_recov = obd->obd_no_recov; + } #ifdef __KERNEL__ lmv_proc_dir = lprocfs_srch(obd->obd_proc_entry, "target_obds"); @@ -829,10 +832,14 @@ static int lmv_iocontrol(unsigned int cmd, struct obd_export *exp, default : { for (i = 0; i < count; i++) { int err; + struct obd_device *mdc_obd; if (lmv->tgts[i].ltd_exp == NULL) continue; - + /* ll_umount_begin() sets force flag but for lmv, not + * mdc. Let's pass it through */ + mdc_obd = class_exp2obd(lmv->tgts[i].ltd_exp); + mdc_obd->obd_force = obddev->obd_force; err = obd_iocontrol(cmd, lmv->tgts[i].ltd_exp, len, karg, uarg); if (err == -ENODATA && cmd == OBD_IOC_POLL_QUOTACHECK) { diff --git a/lustre/lov/lov_obd.c b/lustre/lov/lov_obd.c index b82202a..c13ccaf 100644 --- a/lustre/lov/lov_obd.c +++ b/lustre/lov/lov_obd.c @@ -2137,11 +2137,16 @@ static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len, for (i = 0; i < count; i++) { int err; + struct obd_device *osc_obd; /* OST was disconnected */ if (!lov->lov_tgts[i] || !lov->lov_tgts[i]->ltd_exp) continue; + /* ll_umount_begin() sets force flag but for lov, not + * osc. Let's pass it through */ + osc_obd = class_exp2obd(lov->lov_tgts[i]->ltd_exp); + osc_obd->obd_force = obddev->obd_force; err = obd_iocontrol(cmd, lov->lov_tgts[i]->ltd_exp, len, karg, uarg); if (err == -ENODATA && cmd == OBD_IOC_POLL_QUOTACHECK) { -- 1.8.3.1