From ec8c6ac277901c0a8deb48056fd249d3e40faca8 Mon Sep 17 00:00:00 2001 From: adilger Date: Tue, 27 Apr 2004 22:09:28 +0000 Subject: [PATCH] Don't have a NULL deref after an interrupted mdc_close. b=2410 --- lustre/llite/file.c | 2 +- lustre/mdc/mdc_request.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lustre/llite/file.c b/lustre/llite/file.c index 9fd0f1a..9d485e1 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -64,7 +64,7 @@ int ll_mdc_close(struct obd_export *mdc_exp, struct inode *inode, CERROR("inode %lu mdc close failed: rc = %d\n", inode->i_ino, rc); } - if (rc == 0) { + if (rc == 0 && req->rq_repmsg != NULL) { rc = ll_objects_destroy(req, file->f_dentry->d_inode); if (rc) CERROR("inode %lu ll_objects destroy: rc = %d\n", diff --git a/lustre/mdc/mdc_request.c b/lustre/mdc/mdc_request.c index afa8ec0..2898a2f 100644 --- a/lustre/mdc/mdc_request.c +++ b/lustre/mdc/mdc_request.c @@ -499,7 +499,7 @@ int mdc_close(struct obd_export *exp, struct obdo *obdo, if (req->rq_repmsg == NULL) { CDEBUG(D_HA, "request failed to send: %p, %d\n", req, req->rq_status); - rc = req->rq_status; + rc = req->rq_status ? req->rq_status : -EIO; } else if (rc == 0) { rc = req->rq_repmsg->status; if (req->rq_repmsg->type == PTL_RPC_MSG_ERR) { -- 1.8.3.1