aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/lustre/lustre/include/obd_class.h
diff options
context:
space:
mode:
authorwang di <di.wang@intel.com>2016-09-18 16:38:46 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-09-19 10:03:41 +0200
commit15b241c539e9b45c17fd7354e8ab9c40f585c4ee (patch)
tree4291343c6cd1741899dc85b8deb02a2dd94b3655 /drivers/staging/lustre/lustre/include/obd_class.h
parentstaging: lustre: client: Fix mkdir -i 1 from DNE2 client to DNE1 server (diff)
downloadlinux-dev-15b241c539e9b45c17fd7354e8ab9c40f585c4ee.tar.xz
linux-dev-15b241c539e9b45c17fd7354e8ab9c40f585c4ee.zip
staging: lustre: lmv: Do not revalidate stripes with master lock
Do not revalidate slave stripes while holding master lock. Otherwise if the revalidating slaves are blocked, then the master lock can not be released in time. Remove some unnecesary merging in ll_revalidate_slave(), and the attributes will be stored in each stripe, only merging them if required. Signed-off-by: wang di <di.wang@intel.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6088 Reviewed-on: http://review.whamcloud.com/13432 Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Lai Siyao <lai.siyao@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: James Simmons <jsimmons@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/lustre/lustre/include/obd_class.h')
-rw-r--r--drivers/staging/lustre/lustre/include/obd_class.h15
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/staging/lustre/lustre/include/obd_class.h b/drivers/staging/lustre/lustre/include/obd_class.h
index 9836aedc5c33..16094dbec08b 100644
--- a/drivers/staging/lustre/lustre/include/obd_class.h
+++ b/drivers/staging/lustre/lustre/include/obd_class.h
@@ -1497,23 +1497,14 @@ static inline int md_free_lustre_md(struct obd_export *exp,
return MDP(exp->exp_obd, free_lustre_md)(exp, md);
}
-static inline int md_update_lsm_md(struct obd_export *exp,
- struct lmv_stripe_md *lsm,
- struct mdt_body *body,
- ldlm_blocking_callback cb)
-{
- EXP_CHECK_MD_OP(exp, update_lsm_md);
- EXP_MD_COUNTER_INCREMENT(exp, update_lsm_md);
- return MDP(exp->exp_obd, update_lsm_md)(exp, lsm, body, cb);
-}
-
static inline int md_merge_attr(struct obd_export *exp,
const struct lmv_stripe_md *lsm,
- struct cl_attr *attr)
+ struct cl_attr *attr,
+ ldlm_blocking_callback cb)
{
EXP_CHECK_MD_OP(exp, merge_attr);
EXP_MD_COUNTER_INCREMENT(exp, merge_attr);
- return MDP(exp->exp_obd, merge_attr)(exp, lsm, attr);
+ return MDP(exp->exp_obd, merge_attr)(exp, lsm, attr, cb);
}
static inline int md_setxattr(struct obd_export *exp, const struct lu_fid *fid,