X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=sidebyside;f=lustre%2Finclude%2Flustre_net.h;h=f705ceb24d3608b92149c4bf00558f6c34afe5f3;hb=33033c27aae361069877d56d44714097a208aa76;hp=926253f8fdcaaf42a69a93a8a4912cb34f65bfe8;hpb=de7a14b5463754c39272a423e4fd5489874a01b8;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_net.h b/lustre/include/lustre_net.h index 926253f..f705ceb 100644 --- a/lustre/include/lustre_net.h +++ b/lustre/include/lustre_net.h @@ -50,7 +50,7 @@ * * @{ */ - +#include #include #include #include @@ -104,6 +104,7 @@ #define MD_MAX_BRW_SIZE (1U << LNET_MTU_BITS) #define MD_MAX_BRW_PAGES (MD_MAX_BRW_SIZE >> PAGE_SHIFT) #define DT_MAX_BRW_SIZE PTLRPC_MAX_BRW_SIZE +#define DT_DEF_BRW_SIZE (4 * ONE_MB_BRW_SIZE) #define DT_MAX_BRW_PAGES (DT_MAX_BRW_SIZE >> PAGE_SHIFT) #define OFD_MAX_BRW_SIZE (1U << LNET_MTU_BITS) @@ -966,6 +967,7 @@ struct ptlrpc_request { * rq_list */ spinlock_t rq_lock; + spinlock_t rq_early_free_lock; /** client-side flags are serialized by rq_lock @{ */ unsigned int rq_intr:1, rq_replied:1, rq_err:1, rq_timedout:1, rq_resend:1, rq_restart:1, @@ -997,6 +999,7 @@ struct ptlrpc_request { rq_allow_replay:1, /* bulk request, sent to server, but uncommitted */ rq_unstable:1, + rq_early_free_repbuf:1, /* free reply buffer in advance */ rq_allow_intr:1; /** @} */ @@ -1728,6 +1731,10 @@ struct ptlrpc_service { int srv_cpt_bits; /** CPT table this service is running over */ struct cfs_cpt_table *srv_cptable; + + /* sysfs object */ + struct kobject srv_kobj; + struct completion srv_kobj_unregister; /** * partition data for ptlrpc service */ @@ -2260,6 +2267,7 @@ void ptlrpc_schedule_difficult_reply(struct ptlrpc_reply_state *rs); int ptlrpc_hpreq_handler(struct ptlrpc_request *req); struct ptlrpc_service *ptlrpc_register_service( struct ptlrpc_service_conf *conf, + struct kset *parent, struct proc_dir_entry *proc_entry); void ptlrpc_stop_all_threads(struct ptlrpc_service *svc); @@ -2509,6 +2517,7 @@ ptlrpc_client_recv_or_unlink(struct ptlrpc_request *req) static inline void ptlrpc_client_wake_req(struct ptlrpc_request *req) { + smp_mb(); if (req->rq_set == NULL) wake_up(&req->rq_reply_waitq); else