Whamcloud - gitweb
LU-10368 mdc: resend quotactl if needed 75/32075/2
authorHongchao Zhang <hongchao.zhang@intel.com>
Wed, 21 Mar 2018 15:21:08 +0000 (23:21 +0800)
committerJohn L. Hammond <john.hammond@intel.com>
Thu, 3 May 2018 20:11:34 +0000 (20:11 +0000)
In mdc_quotactl, it is better to resend the quotactl request
if reconnection or failover is triggered during the process.

Lustre-change: https://review.whamcloud.com/31773
Lustre-commit: d511918e8eb725abba2561cc493e30651a89ac27

Change-Id: I64f96863a6f10026aa69cba3c59095966b58b98d
Signed-off-by: Hongchao Zhang <hongchao.zhang@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Minh Diep <minh.diep@intel.com>
Reviewed-on: https://review.whamcloud.com/32075
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
lustre/mdc/mdc_request.c

index 1152829..681e5bd 100644 (file)
@@ -1818,38 +1818,37 @@ static int mdc_ioc_hsm_ct_start(struct obd_export *exp,
 static int mdc_quotactl(struct obd_device *unused, struct obd_export *exp,
                         struct obd_quotactl *oqctl)
 {
-        struct ptlrpc_request   *req;
-        struct obd_quotactl     *oqc;
-        int                      rc;
-        ENTRY;
+       struct ptlrpc_request   *req;
+       struct obd_quotactl     *oqc;
+       int                      rc;
+       ENTRY;
 
-        req = ptlrpc_request_alloc_pack(class_exp2cliimp(exp),
-                                        &RQF_MDS_QUOTACTL, LUSTRE_MDS_VERSION,
-                                        MDS_QUOTACTL);
-        if (req == NULL)
-                RETURN(-ENOMEM);
+       req = ptlrpc_request_alloc_pack(class_exp2cliimp(exp),
+                                       &RQF_MDS_QUOTACTL, LUSTRE_MDS_VERSION,
+                                       MDS_QUOTACTL);
+       if (req == NULL)
+               RETURN(-ENOMEM);
 
-        oqc = req_capsule_client_get(&req->rq_pill, &RMF_OBD_QUOTACTL);
-        *oqc = *oqctl;
+       oqc = req_capsule_client_get(&req->rq_pill, &RMF_OBD_QUOTACTL);
+       *oqc = *oqctl;
 
-        ptlrpc_request_set_replen(req);
-        ptlrpc_at_set_req_timeout(req);
-        req->rq_no_resend = 1;
+       ptlrpc_request_set_replen(req);
+       ptlrpc_at_set_req_timeout(req);
 
-        rc = ptlrpc_queue_wait(req);
-        if (rc)
-                CERROR("ptlrpc_queue_wait failed, rc: %d\n", rc);
-
-        if (req->rq_repmsg &&
-            (oqc = req_capsule_server_get(&req->rq_pill, &RMF_OBD_QUOTACTL))) {
-                *oqctl = *oqc;
-        } else if (!rc) {
-                CERROR ("Can't unpack obd_quotactl\n");
-                rc = -EPROTO;
-        }
-        ptlrpc_req_finished(req);
+       rc = ptlrpc_queue_wait(req);
+       if (rc)
+               CERROR("ptlrpc_queue_wait failed, rc: %d\n", rc);
+
+       if (req->rq_repmsg &&
+           (oqc = req_capsule_server_get(&req->rq_pill, &RMF_OBD_QUOTACTL))) {
+               *oqctl = *oqc;
+       } else if (!rc) {
+               CERROR ("Can't unpack obd_quotactl\n");
+               rc = -EPROTO;
+       }
+       ptlrpc_req_finished(req);
 
-        RETURN(rc);
+       RETURN(rc);
 }
 
 static int mdc_ioc_swap_layouts(struct obd_export *exp,