OSDN Git Service

__blockdev_direct_IO(): get rid of submit_io callback
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 20 Jan 2023 00:22:22 +0000 (19:22 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 6 Mar 2023 01:27:41 +0000 (20:27 -0500)
always NULL...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/direct-io.c
fs/ocfs2/aops.c
include/linux/fs.h

index ab0d7ea..0b380bb 100644 (file)
@@ -86,7 +86,6 @@ struct dio_submit {
        sector_t final_block_in_request;/* doesn't change */
        int boundary;                   /* prev block is at a boundary */
        get_block_t *get_block;         /* block mapping function */
-       dio_submit_t *submit_io;        /* IO submition function */
 
        loff_t logical_offset_in_bio;   /* current first logical block in bio */
        sector_t final_block_in_bio;    /* current final block in bio + 1 */
@@ -431,10 +430,7 @@ static inline void dio_bio_submit(struct dio *dio, struct dio_submit *sdio)
 
        dio->bio_disk = bio->bi_bdev->bd_disk;
 
-       if (sdio->submit_io)
-               sdio->submit_io(bio, dio->inode, sdio->logical_offset_in_bio);
-       else
-               submit_bio(bio);
+       submit_bio(bio);
 
        sdio->bio = NULL;
        sdio->boundary = 0;
@@ -1098,7 +1094,7 @@ static inline int drop_refcount(struct dio *dio)
 ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,
                struct block_device *bdev, struct iov_iter *iter,
                get_block_t get_block, dio_iodone_t end_io,
-               dio_submit_t submit_io, int flags)
+               int flags)
 {
        unsigned i_blkbits = READ_ONCE(inode->i_blkbits);
        unsigned blkbits = i_blkbits;
@@ -1215,7 +1211,6 @@ ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,
 
        sdio.get_block = get_block;
        dio->end_io = end_io;
-       sdio.submit_io = submit_io;
        sdio.final_block_in_bio = -1;
        sdio.next_block_for_io = -1;
 
index 1d65f6e..50448ba 100644 (file)
@@ -2448,7 +2448,7 @@ static ssize_t ocfs2_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
 
        return __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev,
                                    iter, get_block,
-                                   ocfs2_dio_end_io, NULL, 0);
+                                   ocfs2_dio_end_io, 0);
 }
 
 const struct address_space_operations ocfs2_aops = {
index c85916e..b07d13e 100644 (file)
@@ -2778,7 +2778,7 @@ enum {
 ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,
                             struct block_device *bdev, struct iov_iter *iter,
                             get_block_t get_block,
-                            dio_iodone_t end_io, dio_submit_t submit_io,
+                            dio_iodone_t end_io,
                             int flags);
 
 static inline ssize_t blockdev_direct_IO(struct kiocb *iocb,
@@ -2787,7 +2787,7 @@ static inline ssize_t blockdev_direct_IO(struct kiocb *iocb,
                                         get_block_t get_block)
 {
        return __blockdev_direct_IO(iocb, inode, inode->i_sb->s_bdev, iter,
-                       get_block, NULL, NULL, DIO_LOCKING | DIO_SKIP_HOLES);
+                       get_block, NULL, DIO_LOCKING | DIO_SKIP_HOLES);
 }
 #endif