Revert "fs: remove dio_end_io()"
authorDavid Sterba <dsterba@suse.com>
Tue, 9 Jun 2020 17:22:47 +0000 (19:22 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 9 Jun 2020 17:23:18 +0000 (19:23 +0200)
This reverts commit b75b7ca7c27dfd61dba368f390b7d4dc20b3a8cb.

The patch restores a helper that was not necessary after direct IO port
to iomap infrastructure, which gets reverted.

Signed-off-by: David Sterba <dsterba@suse.com>
fs/direct-io.c
include/linux/fs.h

index c44d60f..00b4d15 100644 (file)
@@ -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,
index e84623d..366c533 100644 (file)
@@ -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,