These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / lustre / lustre / ptlrpc / niobuf.c
index 2fa2585..09ddeef 100644 (file)
@@ -52,17 +52,17 @@ static int ptl_send_buf(lnet_handle_md_t *mdh, void *base, int len,
                        struct ptlrpc_connection *conn, int portal, __u64 xid,
                        unsigned int offset)
 {
-       int           rc;
-       lnet_md_t        md;
+       int rc;
+       lnet_md_t md;
 
        LASSERT(portal != 0);
        LASSERT(conn != NULL);
        CDEBUG(D_INFO, "conn=%p id %s\n", conn, libcfs_id2str(conn->c_peer));
-       md.start     = base;
-       md.length    = len;
+       md.start = base;
+       md.length = len;
        md.threshold = (ack == LNET_ACK_REQ) ? 2 : 1;
-       md.options   = PTLRPC_MD_OPTIONS;
-       md.user_ptr  = cbid;
+       md.options = PTLRPC_MD_OPTIONS;
+       md.user_ptr = cbid;
        md.eq_handle = ptlrpc_eq_h;
 
        if (unlikely(ack == LNET_ACK_REQ &&
@@ -106,12 +106,11 @@ static void mdunlink_iterate_helper(lnet_handle_md_t *bd_mds, int count)
                LNetMDUnlink(bd_mds[i]);
 }
 
-
 /**
  * Register bulk at the sender for later transfer.
  * Returns 0 on success or error code.
  */
-int ptlrpc_register_bulk(struct ptlrpc_request *req)
+static int ptlrpc_register_bulk(struct ptlrpc_request *req)
 {
        struct ptlrpc_bulk_desc *desc = req->rq_bulk;
        lnet_process_id_t peer;
@@ -120,8 +119,8 @@ int ptlrpc_register_bulk(struct ptlrpc_request *req)
        int posted_md;
        int total_md;
        __u64 xid;
-       lnet_handle_me_t  me_h;
-       lnet_md_t        md;
+       lnet_handle_me_t me_h;
+       lnet_md_t md;
 
        if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_BULK_GET_NET))
                return 0;
@@ -232,7 +231,6 @@ int ptlrpc_register_bulk(struct ptlrpc_request *req)
 
        return 0;
 }
-EXPORT_SYMBOL(ptlrpc_register_bulk);
 
 /**
  * Disconnect a bulk desc from the network. Idempotent. Not
@@ -243,16 +241,16 @@ EXPORT_SYMBOL(ptlrpc_register_bulk);
 int ptlrpc_unregister_bulk(struct ptlrpc_request *req, int async)
 {
        struct ptlrpc_bulk_desc *desc = req->rq_bulk;
-       wait_queue_head_t            *wq;
-       struct l_wait_info       lwi;
-       int                   rc;
+       wait_queue_head_t *wq;
+       struct l_wait_info lwi;
+       int rc;
 
        LASSERT(!in_interrupt());     /* might sleep */
 
        /* Let's setup deadline for reply unlink. */
        if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_LONG_BULK_UNLINK) &&
            async && req->rq_bulk_deadline == 0)
-               req->rq_bulk_deadline = get_seconds() + LONG_UNLINK;
+               req->rq_bulk_deadline = ktime_get_real_seconds() + LONG_UNLINK;
 
        if (ptlrpc_client_bulk_active(req) == 0)        /* completed or */
                return 1;                               /* never registered */
@@ -301,9 +299,9 @@ EXPORT_SYMBOL(ptlrpc_unregister_bulk);
 
 static void ptlrpc_at_set_reply(struct ptlrpc_request *req, int flags)
 {
-       struct ptlrpc_service_part      *svcpt = req->rq_rqbd->rqbd_svcpt;
-       struct ptlrpc_service           *svc = svcpt->scp_service;
-       int service_time = max_t(int, get_seconds() -
+       struct ptlrpc_service_part *svcpt = req->rq_rqbd->rqbd_svcpt;
+       struct ptlrpc_service *svc = svcpt->scp_service;
+       int service_time = max_t(int, ktime_get_real_seconds() -
                                 req->rq_arrival_time.tv_sec, 1);
 
        if (!(flags & PTLRPC_REPLY_EARLY) &&
@@ -328,8 +326,7 @@ static void ptlrpc_at_set_reply(struct ptlrpc_request *req, int flags)
        /* Report service time estimate for future client reqs, but report 0
         * (to be ignored by client) if it's a error reply during recovery.
         * (bz15815) */
-       if (req->rq_type == PTL_RPC_MSG_ERR &&
-           (req->rq_export == NULL || req->rq_export->exp_obd->obd_recovering))
+       if (req->rq_type == PTL_RPC_MSG_ERR && !req->rq_export)
                lustre_msg_set_timeout(req->rq_repmsg, 0);
        else
                lustre_msg_set_timeout(req->rq_repmsg,
@@ -337,9 +334,8 @@ static void ptlrpc_at_set_reply(struct ptlrpc_request *req, int flags)
 
        if (req->rq_reqmsg &&
            !(lustre_msghdr_get_flags(req->rq_reqmsg) & MSGHDR_AT_SUPPORT)) {
-               CDEBUG(D_ADAPTTO, "No early reply support: flags=%#x req_flags=%#x magic=%d:%x/%x len=%d\n",
+               CDEBUG(D_ADAPTTO, "No early reply support: flags=%#x req_flags=%#x magic=%x/%x len=%d\n",
                       flags, lustre_msg_get_flags(req->rq_reqmsg),
-                      lustre_msg_is_v1(req->rq_reqmsg),
                       lustre_msg_get_magic(req->rq_reqmsg),
                       lustre_msg_get_magic(req->rq_repmsg), req->rq_replen);
        }
@@ -353,8 +349,8 @@ static void ptlrpc_at_set_reply(struct ptlrpc_request *req, int flags)
 int ptlrpc_send_reply(struct ptlrpc_request *req, int flags)
 {
        struct ptlrpc_reply_state *rs = req->rq_reply_state;
-       struct ptlrpc_connection  *conn;
-       int                     rc;
+       struct ptlrpc_connection *conn;
+       int rc;
 
        /* We must already have a reply buffer (only ptlrpc_error() may be
         * called without one). The reply generated by sptlrpc layer (e.g.
@@ -422,7 +418,7 @@ int ptlrpc_send_reply(struct ptlrpc_request *req, int flags)
        if (unlikely(rc))
                goto out;
 
-       req->rq_sent = get_seconds();
+       req->rq_sent = ktime_get_real_seconds();
 
        rc = ptl_send_buf(&rs->rs_md_h, rs->rs_repbuf, rs->rs_repdata_len,
                          (rs->rs_difficult && !rs->rs_no_ack) ?
@@ -491,8 +487,8 @@ int ptl_send_rpc(struct ptlrpc_request *request, int noreply)
        int rc2;
        int mpflag = 0;
        struct ptlrpc_connection *connection;
-       lnet_handle_me_t  reply_me_h;
-       lnet_md_t        reply_md;
+       lnet_handle_me_t reply_me_h;
+       lnet_md_t reply_md;
        struct obd_device *obd = request->rq_import->imp_obd;
 
        if (OBD_FAIL_CHECK(OBD_FAIL_PTLRPC_DROP_RPC))
@@ -594,15 +590,15 @@ int ptl_send_rpc(struct ptlrpc_request *request, int noreply)
        spin_unlock(&request->rq_lock);
 
        if (!noreply) {
-               reply_md.start     = request->rq_repbuf;
-               reply_md.length    = request->rq_repbuf_len;
+               reply_md.start = request->rq_repbuf;
+               reply_md.length = request->rq_repbuf_len;
                /* Allow multiple early replies */
                reply_md.threshold = LNET_MD_THRESH_INF;
                /* Manage remote for early replies */
-               reply_md.options   = PTLRPC_MD_OPTIONS | LNET_MD_OP_PUT |
+               reply_md.options = PTLRPC_MD_OPTIONS | LNET_MD_OP_PUT |
                        LNET_MD_MANAGE_REMOTE |
-                       LNET_MD_TRUNCATE; /* allow to make EOVERFLOW error */;
-               reply_md.user_ptr  = &request->rq_reply_cbid;
+                       LNET_MD_TRUNCATE; /* allow to make EOVERFLOW error */
+               reply_md.user_ptr = &request->rq_reply_cbid;
                reply_md.eq_handle = ptlrpc_eq_h;
 
                /* We must see the unlink callback to unset rq_reply_unlink,
@@ -633,8 +629,8 @@ int ptl_send_rpc(struct ptlrpc_request *request, int noreply)
 
        OBD_FAIL_TIMEOUT(OBD_FAIL_PTLRPC_DELAY_SEND, request->rq_timeout + 5);
 
-       do_gettimeofday(&request->rq_arrival_time);
-       request->rq_sent = get_seconds();
+       ktime_get_real_ts64(&request->rq_arrival_time);
+       request->rq_sent = ktime_get_real_seconds();
        /* We give the server rq_timeout secs to process the req, and
           add the network latency for our local timeout. */
        request->rq_deadline = request->rq_sent + request->rq_timeout +
@@ -682,11 +678,11 @@ EXPORT_SYMBOL(ptl_send_rpc);
  */
 int ptlrpc_register_rqbd(struct ptlrpc_request_buffer_desc *rqbd)
 {
-       struct ptlrpc_service     *service = rqbd->rqbd_svcpt->scp_service;
-       static lnet_process_id_t  match_id = {LNET_NID_ANY, LNET_PID_ANY};
-       int                       rc;
-       lnet_md_t                md;
-       lnet_handle_me_t          me_h;
+       struct ptlrpc_service *service = rqbd->rqbd_svcpt->scp_service;
+       static lnet_process_id_t match_id = {LNET_NID_ANY, LNET_PID_ANY};
+       int rc;
+       lnet_md_t md;
+       lnet_handle_me_t me_h;
 
        CDEBUG(D_NET, "LNetMEAttach: portal %d\n",
               service->srv_req_portal);
@@ -709,12 +705,12 @@ int ptlrpc_register_rqbd(struct ptlrpc_request_buffer_desc *rqbd)
        LASSERT(rqbd->rqbd_refcount == 0);
        rqbd->rqbd_refcount = 1;
 
-       md.start     = rqbd->rqbd_buffer;
-       md.length    = service->srv_buf_size;
-       md.max_size  = service->srv_max_req_size;
+       md.start = rqbd->rqbd_buffer;
+       md.length = service->srv_buf_size;
+       md.max_size = service->srv_max_req_size;
        md.threshold = LNET_MD_THRESH_INF;
-       md.options   = PTLRPC_MD_OPTIONS | LNET_MD_OP_PUT | LNET_MD_MAX_SIZE;
-       md.user_ptr  = &rqbd->rqbd_cbid;
+       md.options = PTLRPC_MD_OPTIONS | LNET_MD_OP_PUT | LNET_MD_MAX_SIZE;
+       md.user_ptr = &rqbd->rqbd_cbid;
        md.eq_handle = ptlrpc_eq_h;
 
        rc = LNetMDAttach(me_h, md, LNET_UNLINK, &rqbd->rqbd_md_h);