From 726cd2c2cf12342198fddb507c25337afb7acfd9 Mon Sep 17 00:00:00 2001 From: dzogin Date: Fri, 4 Sep 2009 17:15:56 +0000 Subject: [PATCH] Branch b1_8 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 | 10 ++++++++++ lustre/lov/lov_request.c | 7 +++++++ lustre/osc/osc_request.c | 8 ++++++++ 3 files changed, 25 insertions(+) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 1263de6..5b36fbf 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -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(). diff --git a/lustre/lov/lov_request.c b/lustre/lov/lov_request.c index 84b3579..d3910e4 100644 --- a/lustre/lov/lov_request.c +++ b/lustre/lov/lov_request.c @@ -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); diff --git a/lustre/osc/osc_request.c b/lustre/osc/osc_request.c index 4d3bf69..1285272 100644 --- a/lustre/osc/osc_request.c +++ b/lustre/osc/osc_request.c @@ -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); -- 1.8.3.1