From 862b9d58565634478662f7fa67accc7989e8d6fd Mon Sep 17 00:00:00 2001 From: shaver Date: Wed, 29 Oct 2003 17:35:57 +0000 Subject: [PATCH] b=2200: perform delorphan recovery when an OST is reintegrated. - use generic per-obd notification system - relay LOV's notifications to MDS - support running delorphan on only one OST, if an OST UUID is specified - suppress CERRORs and refailing for -EIO in interpret_create, because we handle it more gracefully now r=phik. --- lustre/osc/osc_create.c | 4 ++-- lustre/tests/test-framework.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lustre/osc/osc_create.c b/lustre/osc/osc_create.c index d84d222..c52ad4b 100644 --- a/lustre/osc/osc_create.c +++ b/lustre/osc/osc_create.c @@ -78,7 +78,7 @@ static int osc_interpret_create(struct ptlrpc_request *req, void *data, if (rc == -ENOSPC) { DEBUG_REQ(D_INODE, req, "OST out of space, flagging"); oscc->oscc_flags |= OSCC_FLAG_NOSPC; - } else if (rc) { + } else if (rc != 0 && rc != -EIO) { DEBUG_REQ(D_ERROR, req, "unknown rc %d from async create: failing oscc\n", rc); @@ -206,7 +206,7 @@ int osc_create(struct obd_export *exp, struct obdo *oa, } /* this is the special case where create removes orphans */ - if (oa->o_valid == OBD_MD_FLFLAGS && + if ((oa->o_valid & OBD_MD_FLFLAGS) && oa->o_flags == OBD_FL_DELORPHAN) { /* delete from next_id on up */ oa->o_valid |= OBD_MD_FLID; diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index f96a5a3..8a11555 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -42,7 +42,7 @@ fail() { local facet=$1 stop $facet --force --failover --nomod start $facet --nomod - df $MOUNT + df $MOUNT || error "post-failover df: $?" } do_lmc() { -- 1.8.3.1