Whamcloud - gitweb
Branch HEAD
authorzam <zam>
Tue, 7 Jul 2009 09:43:43 +0000 (09:43 +0000)
committerzam <zam>
Tue, 7 Jul 2009 09:43:43 +0000 (09:43 +0000)
b=19630
i=alexander.zarochentsev
i=alexey.lyashkov

fail truncate syscall if one ost is inactive.

lustre/lov/lov_request.c

index b2ea15c..f0eee27 100644 (file)
@@ -1325,18 +1325,18 @@ int lov_prep_punch_set(struct obd_export *exp, struct obd_info *oinfo,
                 struct lov_request *req;
                 obd_off rs, re;
 
-                if (!lov->lov_tgts[loi->loi_ost_idx] ||
-                    !lov->lov_tgts[loi->loi_ost_idx]->ltd_active) {
-                        CDEBUG(D_HA, "lov idx %d inactive\n", loi->loi_ost_idx);
-                        continue;
-                }
-
                 if (!lov_stripe_intersects(oinfo->oi_md, i,
                                            oinfo->oi_policy.l_extent.start,
                                            oinfo->oi_policy.l_extent.end,
                                            &rs, &re))
                         continue;
 
+                if (!lov->lov_tgts[loi->loi_ost_idx] ||
+                    !lov->lov_tgts[loi->loi_ost_idx]->ltd_active) {
+                        CDEBUG(D_HA, "lov idx %d inactive\n", loi->loi_ost_idx);
+                        GOTO(out_set, rc = -EIO);
+                }
+
                 OBD_ALLOC(req, sizeof(*req));
                 if (req == NULL)
                         GOTO(out_set, rc = -ENOMEM);