Whamcloud - gitweb
Branch b1_8
authordzogin <dzogin>
Fri, 4 Sep 2009 17:15:56 +0000 (17:15 +0000)
committerdzogin <dzogin>
Fri, 4 Sep 2009 17:15:56 +0000 (17:15 +0000)
 b=20482
 i=robert.read
 i=adilger
 ----------------------------------------------------------------------
Modified Files:
  Tag: b1_8
  lustre/ChangeLog lustre/lov/lov_request.c
  lustre/osc/osc_request.c
----------------------------------------------------------------------
Index: lustre/ChangeLog
===================================================================
Severity   : normal
Bugzilla   : 20482
Description: Error handling in osc_statfs_interpret() has been improved.
Details    : Check in osc_statfs_interpret() for EBADR.

Severity   : normal
Bugzilla   : 20482
Description: Do not send statfs() requests to OSTs disabled by administrator.
Details    : Check in lov_prep_statfs_set() for non-NULL ltd_exp.
===================================================================

lustre/ChangeLog
lustre/lov/lov_request.c
lustre/osc/osc_request.c

index 1263de6..5b36fbf 100644 (file)
@@ -15,6 +15,16 @@ tbd Sun Microsystems, Inc.
          more information, please refer to bugzilla 17630.
 
 Severity   : normal
+Bugzilla   : 20482
+Description: Error handling in osc_statfs_interpret() has been improved.
+Details    : Check in osc_statfs_interpret() for EBADR.
+
+Severity   : normal
+Bugzilla   : 20482
+Description: Do not send statfs() requests to OSTs disabled by administrator.
+Details    : Check in lov_prep_statfs_set() for non-NULL ltd_exp.
+
+Severity   : normal
 Bugzilla   : 20146
 Description: Do not update ctime for the deleted inode.
 Details    : Check in mds_reint_unlink() before calling fsfilt_setattr().
index 84b3579..d3910e4 100644 (file)
@@ -1669,6 +1669,13 @@ int lov_prep_statfs_set(struct obd_device *obd, struct obd_info *oinfo,
                         continue;
                 }
 
+                /* skip targets that have been explicitely disabled by the
+                 * administrator */
+                if (!lov->lov_tgts[i]->ltd_exp) {
+                        CDEBUG(D_HA, "lov idx %d administratively disabled\n", i);
+                        continue;
+                }
+
                 OBD_ALLOC(req, sizeof(*req));
                 if (req == NULL)
                         GOTO(out_set, rc = -ENOMEM);
index 4d3bf69..1285272 100644 (file)
@@ -3545,6 +3545,14 @@ static int osc_statfs_interpret(struct ptlrpc_request *req,
         struct obd_statfs *msfs;
         ENTRY;
 
+        if (rc == -EBADR)
+                /* The request has in fact never been sent
+                 * due to issues at a higher level (LOV).
+                 * Exit immediately since the caller is
+                 * aware of the problem and takes care
+                 * of the clean up */
+                 RETURN(rc);
+
         if ((rc == -ENOTCONN || rc == -EAGAIN) &&
             (aa->aa_oi->oi_flags & OBD_STATFS_NODELAY))
                 GOTO(out, rc = 0);