mirror of
https://github.com/torvalds/linux.git
synced 2026-08-01 12:11:59 +02:00
smb: smbdirect: introduce smbdirect_socket.mr_io.*
This will be used by the client and will allow us to move to common code... Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> Cc: Long Li <longli@microsoft.com> Acked-by: Namjae Jeon <linkinjeon@kernel.org> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Signed-off-by: Stefan Metzmacher <metze@samba.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
41e5086905
commit
ed3350f09d
|
|
@ -206,6 +206,44 @@ struct smbdirect_socket {
|
|||
} reassembly;
|
||||
} recv_io;
|
||||
|
||||
/*
|
||||
* The state for Memory registrations on the client
|
||||
*/
|
||||
struct {
|
||||
enum ib_mr_type type;
|
||||
|
||||
/*
|
||||
* The list of free smbdirect_mr_io
|
||||
* structures
|
||||
*/
|
||||
struct {
|
||||
struct list_head list;
|
||||
spinlock_t lock;
|
||||
} all;
|
||||
|
||||
/*
|
||||
* The number of available MRs ready for memory registration
|
||||
*/
|
||||
struct {
|
||||
atomic_t count;
|
||||
wait_queue_head_t wait_queue;
|
||||
} ready;
|
||||
|
||||
/*
|
||||
* The number of used MRs
|
||||
*/
|
||||
struct {
|
||||
atomic_t count;
|
||||
} used;
|
||||
|
||||
struct work_struct recovery_work;
|
||||
|
||||
/* Used by transport to wait until all MRs are returned */
|
||||
struct {
|
||||
wait_queue_head_t wait_queue;
|
||||
} cleanup;
|
||||
} mr_io;
|
||||
|
||||
/*
|
||||
* The state for RDMA read/write requests on the server
|
||||
*/
|
||||
|
|
@ -269,6 +307,13 @@ static __always_inline void smbdirect_socket_init(struct smbdirect_socket *sc)
|
|||
|
||||
atomic_set(&sc->rw_io.credits.count, 0);
|
||||
init_waitqueue_head(&sc->rw_io.credits.wait_queue);
|
||||
|
||||
spin_lock_init(&sc->mr_io.all.lock);
|
||||
INIT_LIST_HEAD(&sc->mr_io.all.list);
|
||||
atomic_set(&sc->mr_io.ready.count, 0);
|
||||
init_waitqueue_head(&sc->mr_io.ready.wait_queue);
|
||||
atomic_set(&sc->mr_io.used.count, 0);
|
||||
init_waitqueue_head(&sc->mr_io.cleanup.wait_queue);
|
||||
}
|
||||
|
||||
struct smbdirect_send_io {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user