diff options
author | 2016-09-18 16:38:46 -0400 | |
---|---|---|
committer | 2016-09-19 10:03:41 +0200 | |
commit | 15b241c539e9b45c17fd7354e8ab9c40f585c4ee (patch) | |
tree | 4291343c6cd1741899dc85b8deb02a2dd94b3655 /drivers/staging/lustre/lustre/include/obd_class.h | |
parent | staging: lustre: client: Fix mkdir -i 1 from DNE2 client to DNE1 server (diff) | |
download | linux-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.h | 15 |
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, |