Loading fs/direct-io.c +19 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,25 @@ static void dio_bio_end_io(struct bio *bio) spin_unlock_irqrestore(&dio->bio_lock, flags); } /** * dio_end_io - handle the end io action for the given bio * @bio: The direct io bio thats being completed * * This is meant to be called by any filesystem that uses their own dio_submit_t * so that the DIO specific endio actions are dealt with after the filesystem * has done it's completion work. */ void dio_end_io(struct bio *bio) { struct dio *dio = bio->bi_private; if (dio->is_async) dio_bio_end_aio(bio); else dio_bio_end_io(bio); } EXPORT_SYMBOL_GPL(dio_end_io); static inline void dio_bio_alloc(struct dio *dio, struct dio_submit *sdio, struct block_device *bdev, Loading include/linux/fs.h +2 −0 Original line number Diff line number Diff line Loading @@ -3187,6 +3187,8 @@ enum { DIO_SKIP_HOLES = 0x02, }; void dio_end_io(struct bio *bio); ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, struct block_device *bdev, struct iov_iter *iter, get_block_t get_block, Loading Loading
fs/direct-io.c +19 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,25 @@ static void dio_bio_end_io(struct bio *bio) spin_unlock_irqrestore(&dio->bio_lock, flags); } /** * dio_end_io - handle the end io action for the given bio * @bio: The direct io bio thats being completed * * This is meant to be called by any filesystem that uses their own dio_submit_t * so that the DIO specific endio actions are dealt with after the filesystem * has done it's completion work. */ void dio_end_io(struct bio *bio) { struct dio *dio = bio->bi_private; if (dio->is_async) dio_bio_end_aio(bio); else dio_bio_end_io(bio); } EXPORT_SYMBOL_GPL(dio_end_io); static inline void dio_bio_alloc(struct dio *dio, struct dio_submit *sdio, struct block_device *bdev, Loading
include/linux/fs.h +2 −0 Original line number Diff line number Diff line Loading @@ -3187,6 +3187,8 @@ enum { DIO_SKIP_HOLES = 0x02, }; void dio_end_io(struct bio *bio); ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, struct block_device *bdev, struct iov_iter *iter, get_block_t get_block, Loading