ext4: remove loop around bio_alloc()
authorTheodore Ts'o <tytso@mit.edu>
Thu, 30 Jun 2011 01:44:45 +0000 (21:44 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 30 Jun 2011 01:44:45 +0000 (21:44 -0400)
These days, bio_alloc() is guaranteed to never fail (as long as nvecs
is less than BIO_MAX_PAGES), so we don't need the loop around the
struct bio allocation.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/page-io.c

index 7bb8f76..430c401 100644 (file)
@@ -285,11 +285,7 @@ static int io_submit_init(struct ext4_io_submit *io,
        io_end = ext4_init_io_end(inode, GFP_NOFS);
        if (!io_end)
                return -ENOMEM;
-       do {
-               bio = bio_alloc(GFP_NOIO, nvecs);
-               nvecs >>= 1;
-       } while (bio == NULL);
-
+       bio = bio_alloc(GFP_NOIO, min(nvecs, BIO_MAX_PAGES));
        bio->bi_sector = bh->b_blocknr * (bh->b_size >> 9);
        bio->bi_bdev = bh->b_bdev;
        bio->bi_private = io->io_end = io_end;