mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
smb: smbdirect: provide explicit prototypes for cross .c file functions
These prototypes are used between private .c files, when they will be compiled alone into smbdirect.ko. For now this uses the SMBDIRECT_USE_INLINE_C_FILES code path and marks all function as '__maybe_unused static', but this will make further changes easier. Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> Cc: Long Li <longli@microsoft.com> Cc: 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> Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
b2261ceedd
commit
89df094290
|
|
@ -143,8 +143,8 @@ static int smbdirect_connection_rdma_event_handler(struct rdma_cm_id *id,
|
|||
return 0;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_rdma_established(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_rdma_established(struct smbdirect_socket *sc)
|
||||
{
|
||||
smbdirect_log_rdma_event(sc, SMBDIRECT_LOG_INFO,
|
||||
"rdma established: device: %.*s local: %pISpsfc remote: %pISpsfc\n",
|
||||
|
|
@ -157,8 +157,8 @@ static void smbdirect_connection_rdma_established(struct smbdirect_socket *sc)
|
|||
sc->rdma.expected_event = RDMA_CM_EVENT_DISCONNECTED;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_negotiation_done(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiation_done(struct smbdirect_socket *sc)
|
||||
{
|
||||
if (unlikely(sc->first_error))
|
||||
return;
|
||||
|
|
@ -233,8 +233,8 @@ static u32 smbdirect_rdma_rw_send_wrs(struct ib_device *dev,
|
|||
return factor * attr->cap.max_rdma_ctxs;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static int smbdirect_connection_create_qp(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_qp(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
struct ib_qp_init_attr qp_attr;
|
||||
|
|
@ -391,7 +391,8 @@ static int smbdirect_connection_create_qp(struct smbdirect_socket *sc)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc)
|
||||
{
|
||||
if (sc->ib.qp) {
|
||||
ib_drain_qp(sc->ib.qp);
|
||||
|
|
@ -412,8 +413,8 @@ static void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc)
|
|||
}
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static int smbdirect_connection_create_mem_pools(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mem_pools(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
char name[80];
|
||||
|
|
@ -490,7 +491,8 @@ static int smbdirect_connection_create_mem_pools(struct smbdirect_socket *sc)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
static void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_recv_io *recv_io, *next_io;
|
||||
|
||||
|
|
@ -517,8 +519,8 @@ static void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc)
|
|||
sc->send_io.mem.cache = NULL;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static struct smbdirect_send_io *smbdirect_connection_alloc_send_io(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_send_io *smbdirect_connection_alloc_send_io(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_send_io *msg;
|
||||
|
||||
|
|
@ -532,8 +534,8 @@ static struct smbdirect_send_io *smbdirect_connection_alloc_send_io(struct smbdi
|
|||
return msg;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_free_send_io(struct smbdirect_send_io *msg)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_free_send_io(struct smbdirect_send_io *msg)
|
||||
{
|
||||
struct smbdirect_socket *sc = msg->socket;
|
||||
size_t i;
|
||||
|
|
@ -564,8 +566,8 @@ static void smbdirect_connection_free_send_io(struct smbdirect_send_io *msg)
|
|||
mempool_free(msg, sc->send_io.mem.pool);
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static struct smbdirect_recv_io *smbdirect_connection_get_recv_io(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *smbdirect_connection_get_recv_io(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_recv_io *msg = NULL;
|
||||
unsigned long flags;
|
||||
|
|
@ -584,8 +586,8 @@ static struct smbdirect_recv_io *smbdirect_connection_get_recv_io(struct smbdire
|
|||
return msg;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg)
|
||||
{
|
||||
struct smbdirect_socket *sc = msg->socket;
|
||||
unsigned long flags;
|
||||
|
|
@ -606,10 +608,10 @@ static void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg)
|
|||
queue_work(sc->workqueue, &sc->recv_io.posted.refill_work);
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_reassembly_append_recv_io(struct smbdirect_socket *sc,
|
||||
struct smbdirect_recv_io *msg,
|
||||
u32 data_length)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_reassembly_append_recv_io(struct smbdirect_socket *sc,
|
||||
struct smbdirect_recv_io *msg,
|
||||
u32 data_length)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
|
|
@ -628,8 +630,8 @@ static void smbdirect_connection_reassembly_append_recv_io(struct smbdirect_sock
|
|||
sc->statistics.enqueue_reassembly_queue++;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static struct smbdirect_recv_io *
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *
|
||||
smbdirect_connection_reassembly_first_recv_io(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_recv_io *msg;
|
||||
|
|
@ -641,11 +643,11 @@ smbdirect_connection_reassembly_first_recv_io(struct smbdirect_socket *sc)
|
|||
return msg;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_negotiate_rdma_resources(struct smbdirect_socket *sc,
|
||||
u8 peer_initiator_depth,
|
||||
u8 peer_responder_resources,
|
||||
const struct rdma_conn_param *param)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiate_rdma_resources(struct smbdirect_socket *sc,
|
||||
u8 peer_initiator_depth,
|
||||
u8 peer_responder_resources,
|
||||
const struct rdma_conn_param *param)
|
||||
{
|
||||
struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
|
||||
|
|
@ -786,7 +788,8 @@ int smbdirect_connection_wait_for_connected(struct smbdirect_socket *sc)
|
|||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_connection_wait_for_connected);
|
||||
|
||||
static void smbdirect_connection_idle_timer_work(struct work_struct *work)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_idle_timer_work(struct work_struct *work)
|
||||
{
|
||||
struct smbdirect_socket *sc =
|
||||
container_of(work, struct smbdirect_socket, idle.timer_work.work);
|
||||
|
|
@ -817,8 +820,8 @@ static void smbdirect_connection_idle_timer_work(struct work_struct *work)
|
|||
queue_work(sc->workqueue, &sc->idle.immediate_work);
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static u16 smbdirect_connection_grant_recv_credits(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
u16 smbdirect_connection_grant_recv_credits(struct smbdirect_socket *sc)
|
||||
{
|
||||
int missing;
|
||||
int available;
|
||||
|
|
@ -874,8 +877,9 @@ static bool smbdirect_connection_request_keep_alive(struct smbdirect_socket *sc)
|
|||
return false;
|
||||
}
|
||||
|
||||
static int smbdirect_connection_post_send_wr(struct smbdirect_socket *sc,
|
||||
struct ib_send_wr *wr)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_send_wr(struct smbdirect_socket *sc,
|
||||
struct ib_send_wr *wr)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
|
@ -1456,8 +1460,8 @@ static void smbdirect_connection_send_immediate_work(struct work_struct *work)
|
|||
}
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static int smbdirect_connection_post_recv_io(struct smbdirect_recv_io *msg)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_recv_io(struct smbdirect_recv_io *msg)
|
||||
{
|
||||
struct smbdirect_socket *sc = msg->socket;
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
|
|
@ -1498,8 +1502,8 @@ static int smbdirect_connection_post_recv_io(struct smbdirect_recv_io *msg)
|
|||
return ret;
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_connection_recv_io_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_recv_io_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
{
|
||||
struct smbdirect_recv_io *recv_io =
|
||||
container_of(wc->wr_cqe, struct smbdirect_recv_io, cqe);
|
||||
|
|
@ -1668,7 +1672,8 @@ static void smbdirect_connection_recv_io_done(struct ib_cq *cq, struct ib_wc *wc
|
|||
smbdirect_socket_schedule_cleanup(sc, -ECONNABORTED);
|
||||
}
|
||||
|
||||
static int smbdirect_connection_recv_io_refill(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_recv_io_refill(struct smbdirect_socket *sc)
|
||||
{
|
||||
int missing;
|
||||
int posted = 0;
|
||||
|
|
|
|||
|
|
@ -15,13 +15,27 @@
|
|||
#include "smbdirect_public.h"
|
||||
#include "smbdirect_socket.h"
|
||||
|
||||
static void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
const char *macro_name,
|
||||
unsigned int lvl,
|
||||
const char *func,
|
||||
unsigned int line,
|
||||
int error,
|
||||
enum smbdirect_socket_status *force_status);
|
||||
#ifdef SMBDIRECT_USE_INLINE_C_FILES
|
||||
/* this is temporary while this file is included in others */
|
||||
#define __SMBDIRECT_PRIVATE__ __maybe_unused static
|
||||
#else
|
||||
#define __SMBDIRECT_PRIVATE__
|
||||
#endif
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_new(struct net *net, struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_accepting(struct rdma_cm_id *id, struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
const char *macro_name,
|
||||
unsigned int lvl,
|
||||
const char *func,
|
||||
unsigned int line,
|
||||
int error,
|
||||
enum smbdirect_socket_status *force_status);
|
||||
#define smbdirect_socket_schedule_cleanup(__sc, __error) \
|
||||
__smbdirect_socket_schedule_cleanup(__sc, \
|
||||
"smbdirect_socket_schedule_cleanup", SMBDIRECT_LOG_ERR, \
|
||||
|
|
@ -37,21 +51,85 @@ static void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
|||
__func__, __LINE__, __error, &__force_status); \
|
||||
} while (0)
|
||||
|
||||
static int smbdirect_socket_wait_for_credits(struct smbdirect_socket *sc,
|
||||
enum smbdirect_socket_status expected_status,
|
||||
int unexpected_errno,
|
||||
wait_queue_head_t *waitq,
|
||||
atomic_t *total_credits,
|
||||
int needed);
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_socket_destroy_sync(struct smbdirect_socket *sc);
|
||||
|
||||
static void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc);
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_wait_for_credits(struct smbdirect_socket *sc,
|
||||
enum smbdirect_socket_status expected_status,
|
||||
int unexpected_errno,
|
||||
wait_queue_head_t *waitq,
|
||||
atomic_t *total_credits,
|
||||
int needed);
|
||||
|
||||
static void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc);
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_rdma_established(struct smbdirect_socket *sc);
|
||||
|
||||
static void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg);
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiation_done(struct smbdirect_socket *sc);
|
||||
|
||||
static void smbdirect_connection_idle_timer_work(struct work_struct *work);
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_qp(struct smbdirect_socket *sc);
|
||||
|
||||
static void smbdirect_connection_destroy_mr_list(struct smbdirect_socket *sc);
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_qp(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mem_pools(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mem_pools(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_send_io *smbdirect_connection_alloc_send_io(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_free_send_io(struct smbdirect_send_io *msg);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *smbdirect_connection_get_recv_io(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_put_recv_io(struct smbdirect_recv_io *msg);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_reassembly_append_recv_io(struct smbdirect_socket *sc,
|
||||
struct smbdirect_recv_io *msg,
|
||||
u32 data_length);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
struct smbdirect_recv_io *
|
||||
smbdirect_connection_reassembly_first_recv_io(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_negotiate_rdma_resources(struct smbdirect_socket *sc,
|
||||
u8 peer_initiator_depth,
|
||||
u8 peer_responder_resources,
|
||||
const struct rdma_conn_param *param);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_idle_timer_work(struct work_struct *work);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
u16 smbdirect_connection_grant_recv_credits(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_send_wr(struct smbdirect_socket *sc,
|
||||
struct ib_send_wr *wr);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_post_recv_io(struct smbdirect_recv_io *msg);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_recv_io_done(struct ib_cq *cq, struct ib_wc *wc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_recv_io_refill(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mr_list(struct smbdirect_socket *sc);
|
||||
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mr_list(struct smbdirect_socket *sc);
|
||||
|
||||
#endif /* __FS_SMB_COMMON_SMBDIRECT_INTERNAL_H__ */
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ static void smbdirect_connection_mr_io_recovery_work(struct work_struct *work);
|
|||
* Recovery is done in smbd_mr_recovery_work. The content of list entry changes
|
||||
* as MRs are used and recovered for I/O, but the list links will not change
|
||||
*/
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static int smbdirect_connection_create_mr_list(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_connection_create_mr_list(struct smbdirect_socket *sc)
|
||||
{
|
||||
const struct smbdirect_socket_parameters *sp = &sc->parameters;
|
||||
struct smbdirect_mr_io *mr;
|
||||
|
|
@ -120,7 +120,8 @@ static void smbdirect_mr_io_free_locked(struct kref *kref)
|
|||
kfree(mr);
|
||||
}
|
||||
|
||||
static void smbdirect_connection_destroy_mr_list(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_connection_destroy_mr_list(struct smbdirect_socket *sc)
|
||||
{
|
||||
struct smbdirect_mr_io *mr, *tmp;
|
||||
LIST_HEAD(all_list);
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@ static int smbdirect_socket_rdma_event_handler(struct rdma_cm_id *id,
|
|||
return -ESTALE;
|
||||
}
|
||||
|
||||
static int smbdirect_socket_init_new(struct net *net, struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_new(struct net *net, struct smbdirect_socket *sc)
|
||||
{
|
||||
struct rdma_cm_id *id;
|
||||
int ret;
|
||||
|
|
@ -111,7 +112,8 @@ int smbdirect_socket_create_kern(struct net *net, struct smbdirect_socket **_sc)
|
|||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_create_kern);
|
||||
|
||||
static int smbdirect_socket_init_accepting(struct rdma_cm_id *id, struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_init_accepting(struct rdma_cm_id *id, struct smbdirect_socket *sc)
|
||||
{
|
||||
smbdirect_socket_init(sc);
|
||||
|
||||
|
|
@ -308,13 +310,14 @@ static void smbdirect_socket_wake_up_all(struct smbdirect_socket *sc)
|
|||
wake_up_all(&sc->mr_io.cleanup.wait_queue);
|
||||
}
|
||||
|
||||
static void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
const char *macro_name,
|
||||
unsigned int lvl,
|
||||
const char *func,
|
||||
unsigned int line,
|
||||
int error,
|
||||
enum smbdirect_socket_status *force_status)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void __smbdirect_socket_schedule_cleanup(struct smbdirect_socket *sc,
|
||||
const char *macro_name,
|
||||
unsigned int lvl,
|
||||
const char *func,
|
||||
unsigned int line,
|
||||
int error,
|
||||
enum smbdirect_socket_status *force_status)
|
||||
{
|
||||
bool was_first = false;
|
||||
|
||||
|
|
@ -559,8 +562,8 @@ static void smbdirect_socket_destroy(struct smbdirect_socket *sc)
|
|||
"rdma session destroyed\n");
|
||||
}
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static void smbdirect_socket_destroy_sync(struct smbdirect_socket *sc)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
void smbdirect_socket_destroy_sync(struct smbdirect_socket *sc)
|
||||
{
|
||||
smbdirect_log_rdma_event(sc, SMBDIRECT_LOG_INFO,
|
||||
"status=%s first_error=%1pe",
|
||||
|
|
@ -659,13 +662,13 @@ void smbdirect_socket_release(struct smbdirect_socket *sc)
|
|||
}
|
||||
__SMBDIRECT_EXPORT_SYMBOL__(smbdirect_socket_release);
|
||||
|
||||
__maybe_unused /* this is temporary while this file is included in others */
|
||||
static int smbdirect_socket_wait_for_credits(struct smbdirect_socket *sc,
|
||||
enum smbdirect_socket_status expected_status,
|
||||
int unexpected_errno,
|
||||
wait_queue_head_t *waitq,
|
||||
atomic_t *total_credits,
|
||||
int needed)
|
||||
__SMBDIRECT_PRIVATE__
|
||||
int smbdirect_socket_wait_for_credits(struct smbdirect_socket *sc,
|
||||
enum smbdirect_socket_status expected_status,
|
||||
int unexpected_errno,
|
||||
wait_queue_head_t *waitq,
|
||||
atomic_t *total_credits,
|
||||
int needed)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user