Whamcloud - gitweb
Don't have a NULL deref after an interrupted mdc_close.
authoradilger <adilger>
Tue, 27 Apr 2004 22:09:28 +0000 (22:09 +0000)
committeradilger <adilger>
Tue, 27 Apr 2004 22:09:28 +0000 (22:09 +0000)
b=2410

lustre/llite/file.c
lustre/mdc/mdc_request.c

index 9fd0f1a..9d485e1 100644 (file)
@@ -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",
index afa8ec0..2898a2f 100644 (file)
@@ -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) {