On Sat, Oct 16, 2021 at 08:06:23PM -0600, Jens Axboe wrote: > static inline int nvme_process_cq(struct nvme_queue *nvmeq) > { > - return nvme_poll_cq(nvmeq, NULL); > + DEFINE_IO_COMP_BATCH(iob); > + int found; > + > + found = nvme_poll_cq(nvmeq, &iob); > + if (iob.req_list) > + nvme_pci_complete_batch(&iob); > + return found; Ok, here the splitt makes sense. That being said I'd rather only add what is nvme_poll_cq as a separate function here, and I'd probably name it __nvme_process_cq as the poll name could create some confusion.