block: remove BIO_EOPNOTSUPP
authorChristoph Hellwig <hch@lst.de>
Fri, 24 Apr 2015 19:41:01 +0000 (21:41 +0200)
committerJens Axboe <axboe@fb.com>
Tue, 19 May 2015 15:17:03 +0000 (09:17 -0600)
Since the big barrier rewrite/removal in 2007 we never fail FLUSH or
FUA requests, which means we can remove the magic BIO_EOPNOTSUPP flag
to help propagating those to the buffer_head layer.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/bounce.c
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/buffer.c
fs/ext4/page-io.c
fs/nilfs2/segbuf.c
include/linux/blk_types.h

index ab21ba203d5c7744f4da2afbba85ed45dde86b98..4bac72579c1f01056bf23a2b7a64941806d6e412 100644 (file)
@@ -128,9 +128,6 @@ static void bounce_end_io(struct bio *bio, mempool_t *pool, int err)
        struct bio_vec *bvec, *org_vec;
        int i;
 
-       if (test_bit(BIO_EOPNOTSUPP, &bio->bi_flags))
-               set_bit(BIO_EOPNOTSUPP, &bio_orig->bi_flags);
-
        /*
         * free up bounce indirect pages used
         */
index 2ef9a4b72d06e46d4f3a19c73e94796cb8397347..e08a926fe12c086e64b8bfc74fd1d257362a989a 100644 (file)
@@ -3269,11 +3269,8 @@ static int write_dev_supers(struct btrfs_device *device,
  */
 static void btrfs_end_empty_barrier(struct bio *bio, int err)
 {
-       if (err) {
-               if (err == -EOPNOTSUPP)
-                       set_bit(BIO_EOPNOTSUPP, &bio->bi_flags);
+       if (err)
                clear_bit(BIO_UPTODATE, &bio->bi_flags);
-       }
        if (bio->bi_private)
                complete(bio->bi_private);
        bio_put(bio);
@@ -3301,11 +3298,7 @@ static int write_dev_flush(struct btrfs_device *device, int wait)
 
                wait_for_completion(&device->flush_wait);
 
-               if (bio_flagged(bio, BIO_EOPNOTSUPP)) {
-                       printk_in_rcu("BTRFS: disabling barriers on dev %s\n",
-                                     rcu_str_deref(device->name));
-                       device->nobarriers = 1;
-               } else if (!bio_flagged(bio, BIO_UPTODATE)) {
+               if (!bio_flagged(bio, BIO_UPTODATE)) {
                        ret = -EIO;
                        btrfs_dev_stat_inc_and_print(device,
                                BTRFS_DEV_STAT_FLUSH_ERRS);
index 43af5a61ad25b4dbb3f4c0f2cb89160c120d1ac7..1e155299abc04e83675ff0d41a49034dd11ea2ae 100644 (file)
@@ -2767,8 +2767,6 @@ static int __must_check submit_one_bio(int rw, struct bio *bio,
        else
                btrfsic_submit_bio(rw, bio);
 
-       if (bio_flagged(bio, BIO_EOPNOTSUPP))
-               ret = -EOPNOTSUPP;
        bio_put(bio);
        return ret;
 }
index c7a5602d01eed200912d3a90ca4ac6780209cb6f..efd85e0e866006f83f831977a2aee6d4ae9ca674 100644 (file)
@@ -2938,10 +2938,6 @@ static void end_bio_bh_io_sync(struct bio *bio, int err)
 {
        struct buffer_head *bh = bio->bi_private;
 
-       if (err == -EOPNOTSUPP) {
-               set_bit(BIO_EOPNOTSUPP, &bio->bi_flags);
-       }
-
        if (unlikely (test_bit(BIO_QUIET,&bio->bi_flags)))
                set_bit(BH_Quiet, &bh->b_state);
 
@@ -3041,13 +3037,7 @@ int _submit_bh(int rw, struct buffer_head *bh, unsigned long bio_flags)
        if (buffer_prio(bh))
                rw |= REQ_PRIO;
 
-       bio_get(bio);
        submit_bio(rw, bio);
-
-       if (bio_flagged(bio, BIO_EOPNOTSUPP))
-               ret = -EOPNOTSUPP;
-
-       bio_put(bio);
        return ret;
 }
 EXPORT_SYMBOL_GPL(_submit_bh);
index 5765f88b39049adbd023e1de0719b5bba04e3204..c5d81e8d84c3a4aedcf0feaf04cb9beb15e11a72 100644 (file)
@@ -359,7 +359,6 @@ void ext4_io_submit(struct ext4_io_submit *io)
        if (bio) {
                bio_get(io->io_bio);
                submit_bio(io->io_op, io->io_bio);
-               BUG_ON(bio_flagged(io->io_bio, BIO_EOPNOTSUPP));
                bio_put(io->io_bio);
        }
        io->io_bio = NULL;
index dc3a9efdaab87751e47edcf9ef3a807fed4573db..42468e5ab3e71ab69d1f121323d6adb28cb67325 100644 (file)
@@ -343,11 +343,6 @@ static void nilfs_end_bio_write(struct bio *bio, int err)
        const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
        struct nilfs_segment_buffer *segbuf = bio->bi_private;
 
-       if (err == -EOPNOTSUPP) {
-               set_bit(BIO_EOPNOTSUPP, &bio->bi_flags);
-               /* to be detected by nilfs_segbuf_submit_bio() */
-       }
-
        if (!uptodate)
                atomic_inc(&segbuf->sb_err);
 
@@ -374,15 +369,8 @@ static int nilfs_segbuf_submit_bio(struct nilfs_segment_buffer *segbuf,
 
        bio->bi_end_io = nilfs_end_bio_write;
        bio->bi_private = segbuf;
-       bio_get(bio);
        submit_bio(mode, bio);
        segbuf->sb_nbio++;
-       if (bio_flagged(bio, BIO_EOPNOTSUPP)) {
-               bio_put(bio);
-               err = -EOPNOTSUPP;
-               goto failed;
-       }
-       bio_put(bio);
 
        wi->bio = NULL;
        wi->rest_blocks -= wi->end - wi->start;
index 93d2e715381695baaf6fde81ad5937efffc94d4b..daf95915d104b18d8c5827e07b51c64252becb4c 100644 (file)
@@ -118,7 +118,6 @@ struct bio {
 #define BIO_CLONED     4       /* doesn't own data */
 #define BIO_BOUNCED    5       /* bio is a bounce bio */
 #define BIO_USER_MAPPED 6      /* contains user pages */
-#define BIO_EOPNOTSUPP 7       /* not supported */
 #define BIO_NULL_MAPPED 8      /* contains invalid user pages */
 #define BIO_QUIET      9       /* Make BIO Quiet */
 #define BIO_SNAP_STABLE        10      /* bio data must be snapshotted during write */