Lines Matching refs:batch
39 struct smbdirect_send_batch *batch,
1226 struct smbdirect_send_batch *batch, in smbd_post_send() argument
1248 if (batch) { in smbd_post_send()
1251 if (!list_empty(&batch->msg_list)) { in smbd_post_send()
1254 last = list_last_entry(&batch->msg_list, in smbd_post_send()
1259 list_add_tail(&request->sibling_list, &batch->msg_list); in smbd_post_send()
1260 batch->wr_cnt++; in smbd_post_send()
1269 static void smbd_send_batch_init(struct smbdirect_send_batch *batch, in smbd_send_batch_init() argument
1273 INIT_LIST_HEAD(&batch->msg_list); in smbd_send_batch_init()
1274 batch->wr_cnt = 0; in smbd_send_batch_init()
1275 batch->need_invalidate_rkey = need_invalidate_rkey; in smbd_send_batch_init()
1276 batch->remote_key = remote_key; in smbd_send_batch_init()
1277 batch->credit = 0; in smbd_send_batch_init()
1281 struct smbdirect_send_batch *batch, in smbd_send_batch_flush() argument
1287 if (list_empty(&batch->msg_list)) in smbd_send_batch_flush()
1290 first = list_first_entry(&batch->msg_list, in smbd_send_batch_flush()
1293 last = list_last_entry(&batch->msg_list, in smbd_send_batch_flush()
1297 if (batch->need_invalidate_rkey) { in smbd_send_batch_flush()
1299 first->wr.ex.invalidate_rkey = batch->remote_key; in smbd_send_batch_flush()
1300 batch->need_invalidate_rkey = false; in smbd_send_batch_flush()
1301 batch->remote_key = 0; in smbd_send_batch_flush()
1316 list_splice_tail_init(&batch->msg_list, &last->sibling_list); in smbd_send_batch_flush()
1317 batch->wr_cnt = 0; in smbd_send_batch_flush()
1331 if (is_last && !ret && batch->credit) { in smbd_send_batch_flush()
1332 atomic_add(batch->credit, &sc->send_io.bcredits.count); in smbd_send_batch_flush()
1333 batch->credit = 0; in smbd_send_batch_flush()
1363 struct smbdirect_send_batch *batch) in wait_for_send_bcredit() argument
1367 if (batch->credit) in wait_for_send_bcredit()
1377 batch->credit = 1; in wait_for_send_bcredit()
1382 struct smbdirect_send_batch *batch) in wait_for_send_lcredit() argument
1384 if (batch && (atomic_read(&sc->send_io.lcredits.count) <= 1)) { in wait_for_send_lcredit()
1387 ret = smbd_send_batch_flush(sc, batch, false); in wait_for_send_lcredit()
1399 struct smbdirect_send_batch *batch) in wait_for_send_credits() argument
1401 if (batch && in wait_for_send_credits()
1402 (batch->wr_cnt >= 16 || atomic_read(&sc->send_io.credits.count) <= 1)) { in wait_for_send_credits()
1405 ret = smbd_send_batch_flush(sc, batch, false); in wait_for_send_credits()
1417 struct smbdirect_send_batch *batch, in smbd_post_send_iter() argument
1430 if (!batch) { in smbd_post_send_iter()
1432 batch = &_batch; in smbd_post_send_iter()
1435 rc = wait_for_send_bcredit(sc, batch); in smbd_post_send_iter()
1442 rc = wait_for_send_lcredit(sc, batch); in smbd_post_send_iter()
1449 rc = wait_for_send_credits(sc, batch); in smbd_post_send_iter()
1552 rc = smbd_post_send(sc, batch, request); in smbd_post_send_iter()
1554 if (batch != &_batch) in smbd_post_send_iter()
1557 rc = smbd_send_batch_flush(sc, batch, true); in smbd_post_send_iter()
1574 atomic_add(batch->credit, &sc->send_io.bcredits.count); in smbd_post_send_iter()
1575 batch->credit = 0; in smbd_post_send_iter()
1596 struct smbdirect_send_batch *batch, in smbd_post_send_full_iter() argument
1609 rc = smbd_post_send_iter(sc, batch, iter, _remaining_data_length); in smbd_post_send_full_iter()
2531 struct smbdirect_send_batch batch; in smbd_send() local
2559 smbd_send_batch_init(&batch, false, 0); in smbd_send()
2578 rc = smbd_post_send_full_iter(sc, &batch, &iter, &remaining_data_length); in smbd_send()
2586 rc = smbd_post_send_full_iter(sc, &batch, &rqst->rq_iter, in smbd_send()
2596 rc = smbd_send_batch_flush(sc, &batch, true); in smbd_send()