xfs
[Top] [All Lists]

[PATCH 02/10] xfs: remove some dead bio handling code

To: xfs@xxxxxxxxxxx
Subject: [PATCH 02/10] xfs: remove some dead bio handling code
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 22 Nov 2010 08:05:08 -0500
References: <20101122130506.868076797@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: quilt/0.48-1
We'll never have BIO_EOPNOTSUPP set after calling submit_bio as
this can only happen for discards, and used to happen for barriers,
none of which is every submitted by xfs_submit_ioend_bio.  Also
remove the loop around bio_alloc as it will never fail due to it's
mempool backing.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Index: xfs/fs/xfs/linux-2.6/xfs_aops.c
===================================================================
--- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c        2010-11-19 14:49:28.115261980 
+0100
+++ xfs/fs/xfs/linux-2.6/xfs_aops.c     2010-11-19 14:49:29.417024168 +0100
@@ -380,26 +380,18 @@ xfs_submit_ioend_bio(
 
        submit_bio(wbc->sync_mode == WB_SYNC_ALL ?
                   WRITE_SYNC_PLUG : WRITE, bio);
-       ASSERT(!bio_flagged(bio, BIO_EOPNOTSUPP));
-       bio_put(bio);
 }
 
 STATIC struct bio *
 xfs_alloc_ioend_bio(
        struct buffer_head      *bh)
 {
-       struct bio              *bio;
        int                     nvecs = bio_get_nr_vecs(bh->b_bdev);
-
-       do {
-               bio = bio_alloc(GFP_NOIO, nvecs);
-               nvecs >>= 1;
-       } while (!bio);
+       struct bio              *bio = bio_alloc(GFP_NOIO, nvecs);
 
        ASSERT(bio->bi_private == NULL);
        bio->bi_sector = bh->b_blocknr * (bh->b_size >> 9);
        bio->bi_bdev = bh->b_bdev;
-       bio_get(bio);
        return bio;
 }
 
@@ -470,9 +462,8 @@ xfs_submit_ioend(
        /* Pass 1 - start writeback */
        do {
                next = ioend->io_list;
-               for (bh = ioend->io_buffer_head; bh; bh = bh->b_private) {
+               for (bh = ioend->io_buffer_head; bh; bh = bh->b_private)
                        xfs_start_buffer_writeback(bh);
-               }
        } while ((ioend = next) != NULL);
 
        /* Pass 2 - submit I/O */

<Prev in Thread] Current Thread [Next in Thread>