Whamcloud - gitweb
LU-12590 ptlrpc: check lm_bufcount and lm_buflen
[fs/lustre-release.git] / lustre / include / lustre_net.h
index b3833a7..106a17c 100644 (file)
  */
 #define OST_IO_BUFSIZE         max_t(int, OST_IO_MAXREQSIZE + 1024, 64 * 1024)
 
-
-/* Macro to hide a typecast. */
-#define ptlrpc_req_async_args(req) ((void *)&req->rq_async_args)
+/* Macro to hide a typecast and BUILD_BUG. */
+#define ptlrpc_req_async_args(_var, req) ({                            \
+               BUILD_BUG_ON(sizeof(*_var) > sizeof(req->rq_async_args)); \
+               (typeof(_var))&req->rq_async_args;                      \
+       })
 
 struct ptlrpc_replay_async_args {
        int             praa_old_state;
@@ -543,7 +545,7 @@ struct ptlrpc_client {
         /** What portal do we expect replies on */
         __u32                   cli_reply_portal;
         /** Name of the client */
-        char                   *cli_name;
+       const char              *cli_name;
 };
 
 /** state flags of requests */
@@ -1277,7 +1279,7 @@ ptlrpc_rqphase2str(struct ptlrpc_request *req)
        FLAG(req->rq_err, "E"), FLAG(req->rq_net_err, "e"),                    \
        FLAG(req->rq_timedout, "X") /* eXpired */, FLAG(req->rq_resend, "S"),  \
        FLAG(req->rq_restart, "T"), FLAG(req->rq_replay, "P"),                 \
-       FLAG(req->rq_no_resend, "N"),                                          \
+       FLAG(req->rq_no_resend, "N"), FLAG(req->rq_no_reply, "n"),            \
        FLAG(req->rq_waiting, "W"),                                            \
        FLAG(req->rq_wait_ctx, "C"), FLAG(req->rq_hp, "H"),                    \
        FLAG(req->rq_committed, "M"),                                          \
@@ -1285,7 +1287,7 @@ ptlrpc_rqphase2str(struct ptlrpc_request *req)
        FLAG(req->rq_reply_unlinked, "U"),                                     \
        FLAG(req->rq_receiving_reply, "r")
 
-#define REQ_FLAGS_FMT "%s:%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
+#define REQ_FLAGS_FMT "%s:%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
 
 void _debug_req(struct ptlrpc_request *req,
                 struct libcfs_debug_msg_data *data, const char *fmt, ...)
@@ -1458,7 +1460,7 @@ struct ptlrpc_bulk_desc {
        struct obd_import *bd_import;
        /** Back pointer to the request */
        struct ptlrpc_request *bd_req;
-       struct ptlrpc_bulk_frag_ops *bd_frag_ops;
+       const struct ptlrpc_bulk_frag_ops *bd_frag_ops;
        wait_queue_head_t      bd_waitq;        /* server side only WQ */
        int                    bd_iov_count;    /* # entries in bd_iov */
        int                    bd_max_iov;      /* allocated size of bd_iov */
@@ -1507,7 +1509,6 @@ enum {
        SVC_STARTING    = 1 << 2,
        SVC_RUNNING     = 1 << 3,
        SVC_EVENT       = 1 << 4,
-       SVC_SIGNAL      = 1 << 5,
 };
 
 #define PTLRPC_THR_NAME_LEN            32
@@ -1577,11 +1578,6 @@ static inline int thread_is_event(struct ptlrpc_thread *thread)
         return !!(thread->t_flags & SVC_EVENT);
 }
 
-static inline int thread_is_signal(struct ptlrpc_thread *thread)
-{
-        return !!(thread->t_flags & SVC_SIGNAL);
-}
-
 static inline void thread_clear_flags(struct ptlrpc_thread *thread, __u32 flags)
 {
         thread->t_flags &= ~flags;
@@ -2124,7 +2120,7 @@ int ptlrpc_register_rqbd(struct ptlrpc_request_buffer_desc *rqbd);
  */
 void ptlrpc_request_committed(struct ptlrpc_request *req, int force);
 
-void ptlrpc_init_client(int req_portal, int rep_portal, char *name,
+void ptlrpc_init_client(int req_portal, int rep_portal, const char *name,
                         struct ptlrpc_client *);
 void ptlrpc_cleanup_client(struct obd_import *imp);
 struct ptlrpc_connection *ptlrpc_uuid_to_connection(struct obd_uuid *uuid,
@@ -2183,30 +2179,9 @@ int ptlrpc_prep_bulk_frag(struct ptlrpc_bulk_desc *desc,
 void __ptlrpc_prep_bulk_page(struct ptlrpc_bulk_desc *desc,
                             struct page *page, int pageoffset, int len,
                             int pin);
-static inline void ptlrpc_prep_bulk_page_pin(struct ptlrpc_bulk_desc *desc,
-                                            struct page *page, int pageoffset,
-                                            int len)
-{
-       __ptlrpc_prep_bulk_page(desc, page, pageoffset, len, 1);
-}
-
-static inline void ptlrpc_prep_bulk_page_nopin(struct ptlrpc_bulk_desc *desc,
-                                              struct page *page, int pageoffset,
-                                              int len)
-{
-       __ptlrpc_prep_bulk_page(desc, page, pageoffset, len, 0);
-}
 
 void ptlrpc_free_bulk(struct ptlrpc_bulk_desc *bulk);
 
-static inline void ptlrpc_release_bulk_page_pin(struct ptlrpc_bulk_desc *desc)
-{
-       int i;
-
-       for (i = 0; i < desc->bd_iov_count ; i++)
-               put_page(BD_GET_KIOV(desc, i).kiov_page);
-}
-
 static inline void ptlrpc_release_bulk_noop(struct ptlrpc_bulk_desc *desc)
 {
 }
@@ -2342,6 +2317,12 @@ int ptlrpc_reconnect_import(struct obd_import *imp);
  *
  * @{
  */
+#define PTLRPC_MAX_BUFCOUNT \
+       (sizeof(((struct ptlrpc_request *)0)->rq_req_swab_mask) * 8)
+#define MD_MAX_BUFLEN          (MDS_REG_MAXREQSIZE > OUT_MAXREQSIZE ? \
+                                MDS_REG_MAXREQSIZE : OUT_MAXREQSIZE)
+#define PTLRPC_MAX_BUFLEN      (OST_IO_MAXREQSIZE > MD_MAX_BUFLEN ? \
+                                OST_IO_MAXREQSIZE : MD_MAX_BUFLEN)
 bool ptlrpc_buf_need_swab(struct ptlrpc_request *req, const int inout,
                          __u32 index);
 void ptlrpc_buf_set_swabbed(struct ptlrpc_request *req, const int inout,