diff options
Diffstat (limited to 'drivers/staging/lustre/lustre/lov/lov_object.c')
-rw-r--r-- | drivers/staging/lustre/lustre/lov/lov_object.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/staging/lustre/lustre/lov/lov_object.c b/drivers/staging/lustre/lustre/lov/lov_object.c index 4cab730..a22342f 100644 --- a/drivers/staging/lustre/lustre/lov/lov_object.c +++ b/drivers/staging/lustre/lustre/lov/lov_object.c @@ -42,6 +42,7 @@ #define DEBUG_SUBSYSTEM S_LOV #include "lov_cl_internal.h" +#include "../include/lclient.h" /** \addtogroup lov * @{ @@ -230,6 +231,9 @@ static int lov_init_raid0(const struct lu_env *env, struct lov_oinfo *oinfo = lsm->lsm_oinfo[i]; int ost_idx = oinfo->loi_ost_idx; + if (lov_oinfo_is_dummy(oinfo)) + continue; + result = ostid_to_fid(ofid, &oinfo->loi_oi, oinfo->loi_ost_idx); if (result != 0) @@ -563,7 +567,7 @@ static const struct lov_layout_operations lov_dispatch[] = { /** * Return lov_layout_type associated with a given lsm */ -enum lov_layout_type lov_type(struct lov_stripe_md *lsm) +static enum lov_layout_type lov_type(struct lov_stripe_md *lsm) { if (lsm == NULL) return LLT_EMPTY; @@ -973,6 +977,10 @@ int lov_read_and_clear_async_rc(struct cl_object *clob) LASSERT(lsm != NULL); for (i = 0; i < lsm->lsm_stripe_count; i++) { struct lov_oinfo *loi = lsm->lsm_oinfo[i]; + + if (lov_oinfo_is_dummy(loi)) + continue; + if (loi->loi_ar.ar_rc && !rc) rc = loi->loi_ar.ar_rc; loi->loi_ar.ar_rc = 0; |