]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ext4: replace BUG_ON with WARN_ONCE in ext4_end_bio()
authorTheodore Ts'o <tytso@mit.edu>
Mon, 1 May 2017 00:08:05 +0000 (20:08 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 1 May 2017 00:08:05 +0000 (20:08 -0400)
Add fallback code and a WARN_ONCE() call instead of a BUG_ON() in
the ext4_end_bio() function.

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

index 208241b06662fbccfd741340ba167e68a711418e..1a82138ba7391ac8fd960c0294715d13051fb232 100644 (file)
@@ -297,8 +297,17 @@ static void ext4_end_bio(struct bio *bio)
 {
        ext4_io_end_t *io_end = bio->bi_private;
        sector_t bi_sector = bio->bi_iter.bi_sector;
+       char b[BDEVNAME_SIZE];
 
-       BUG_ON(!io_end);
+       if (WARN_ONCE(!io_end, "io_end is NULL: %s: sector %Lu len %u err %d\n",
+                     bdevname(bio->bi_bdev, b),
+                     (long long) bio->bi_iter.bi_sector,
+                     (unsigned) bio_sectors(bio),
+                     bio->bi_error)) {
+               ext4_finish_bio(bio);
+               bio_put(bio);
+               return;
+       }
        bio->bi_end_io = NULL;
 
        if (bio->bi_error) {