mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-12 17:42:38 +00:00
block: add a struct io_comp_batch argument to fops->iopoll()
struct io_comp_batch contains a list head and a completion handler, which will allow completions to more effciently completed batches of IO. For now, no functional changes in this patch, we just define the io_comp_batch structure and add the argument to the file_operations iopoll handler. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
013a7f9543
commit
5a72e899ce
16 changed files with 39 additions and 25 deletions
|
@ -569,8 +569,9 @@ blk_status_t errno_to_blk_status(int errno);
|
|||
#define BLK_POLL_ONESHOT (1 << 0)
|
||||
/* do not sleep to wait for the expected completion time */
|
||||
#define BLK_POLL_NOSLEEP (1 << 1)
|
||||
int bio_poll(struct bio *bio, unsigned int flags);
|
||||
int iocb_bio_iopoll(struct kiocb *kiocb, unsigned int flags);
|
||||
int bio_poll(struct bio *bio, struct io_comp_batch *iob, unsigned int flags);
|
||||
int iocb_bio_iopoll(struct kiocb *kiocb, struct io_comp_batch *iob,
|
||||
unsigned int flags);
|
||||
|
||||
static inline struct request_queue *bdev_get_queue(struct block_device *bdev)
|
||||
{
|
||||
|
@ -1298,6 +1299,14 @@ int fsync_bdev(struct block_device *bdev);
|
|||
int freeze_bdev(struct block_device *bdev);
|
||||
int thaw_bdev(struct block_device *bdev);
|
||||
|
||||
struct io_comp_batch {
|
||||
struct request *req_list;
|
||||
bool need_ts;
|
||||
void (*complete)(struct io_comp_batch *);
|
||||
};
|
||||
|
||||
#define DEFINE_IO_COMP_BATCH(name) struct io_comp_batch name = { }
|
||||
|
||||
#define rq_list_add(listptr, rq) do { \
|
||||
(rq)->rq_next = *(listptr); \
|
||||
*(listptr) = rq; \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue