From: pschwan Date: Fri, 21 Jun 2002 03:48:11 +0000 (+0000) Subject: Fixed an MDS crash bug discovered as a result of earlier warning cleanup X-Git-Tag: 0.4.2~101 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=66ce98d3a6fa51989ac9b248d2b1edde618d8b46;p=fs%2Flustre-release.git Fixed an MDS crash bug discovered as a result of earlier warning cleanup --- diff --git a/lustre/ldlm/ldlm_lockd.c b/lustre/ldlm/ldlm_lockd.c index c8780cf..9f726e5 100644 --- a/lustre/ldlm/ldlm_lockd.c +++ b/lustre/ldlm/ldlm_lockd.c @@ -150,12 +150,12 @@ static int _ldlm_enqueue(struct obd_device *obddev, struct ptlrpc_service *svc, if (ptlrpc_reply(svc, req)) LBUG(); - if (!err) - ldlm_reprocess_all(lock->l_resource); if (err) LDLM_DEBUG_NOLOCK("server-side enqueue handler END"); - else + else { + ldlm_reprocess_all(lock->l_resource); LDLM_DEBUG(lock, "server-side enqueue handler END"); + } return 0; } diff --git a/lustre/mds/handler.c b/lustre/mds/handler.c index de7668c..a94aa77 100644 --- a/lustre/mds/handler.c +++ b/lustre/mds/handler.c @@ -148,7 +148,7 @@ struct dentry *mds_fid2dentry(struct mds_obd *mds, struct ll_fid *fid, return result; } -static int mds_connect(struct ptlrpc_request *req) +static int mds_connect(struct ptlrpc_request *req, struct mds_obd **mdsp) { struct mds_obd *mds; char *uuid; @@ -168,7 +168,7 @@ static int mds_connect(struct ptlrpc_request *req) RETURN(-ENODEV); } - mds = &(obd_dev[i].u.mds); + *mdsp = mds = &(obd_dev[i].u.mds); if (mds != &(req->rq_obd->u.mds)) { CERROR("device %d (%s) is not an mds\n", i, uuid); req->rq_status = -ENODEV; @@ -694,7 +694,7 @@ int mds_handle(struct obd_device *dev, struct ptlrpc_service *svc, case MDS_CONNECT: CDEBUG(D_INODE, "connect\n"); OBD_FAIL_RETURN(OBD_FAIL_MDS_CONNECT_NET, 0); - rc = mds_connect(req); + rc = mds_connect(req, &mds); break; case MDS_DISCONNECT: @@ -777,7 +777,6 @@ out: CDEBUG(D_NET, "sending reply\n"); ptlrpc_reply(svc, req); } - return 0; }