Whamcloud - gitweb
LU-3453 mdt: check for packed reply in mdt_intent_opc()
authorJohn L. Hammond <john.hammond@intel.com>
Wed, 12 Jun 2013 18:15:14 +0000 (13:15 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 13 Jun 2013 21:33:22 +0000 (17:33 -0400)
In mdt_intent_opc() check that the reply has been packed before trying
to adjust the lock policy result.

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: Iab2858bf26390e6c305fcca6b7b7e0bc1be32a71
Reviewed-on: http://review.whamcloud.com/6617
Tested-by: Hudson
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
lustre/mdt/mdt_handler.c

index d1340de..78d994c 100644 (file)
@@ -3970,9 +3970,13 @@ static int mdt_intent_opc(long itopc, struct mdt_thread_info *info,
                /* execute policy */
                rc = flv->it_act(opc, info, lockp, flags);
 
                /* execute policy */
                rc = flv->it_act(opc, info, lockp, flags);
 
-               rep = req_capsule_server_get(pill, &RMF_DLM_REP);
-               rep->lock_policy_res2 =
-                       ptlrpc_status_hton(rep->lock_policy_res2);
+               /* Check whether the reply has been packed successfully. */
+               if (mdt_info_req(info)->rq_repmsg != NULL) {
+                       rep = req_capsule_server_get(info->mti_pill,
+                                                    &RMF_DLM_REP);
+                       rep->lock_policy_res2 =
+                               ptlrpc_status_hton(rep->lock_policy_res2);
+               }
         } else {
                 rc = -EOPNOTSUPP;
         }
         } else {
                 rc = -EOPNOTSUPP;
         }