Re: [block:for-3.14/core] kernel BUG at fs/bio.c:1748

From: Muthu Kumar
Date: Sun Jan 05 2014 - 11:29:03 EST


Fengguang,
Instead of rebooting, can you trigger a crash dump when this happens
and send us the backtrace (to start with)?

Kent,
Did you do any btrfs test with your changes?

Regards,
Muthu

On Sun, Jan 5, 2014 at 1:46 AM, Fengguang Wu <fengguang.wu@xxxxxxxxx> wrote:
> Hi Muthu,
>
> On Fri, Jan 03, 2014 at 11:51:31AM -0800, Muthu Kumar wrote:
>> Looks like Kent missed the btrfs endio in the original commit. How
>> about this patch:
>>
>> ---------
>>
>> In btrfs_end_bio, call bio_endio_nodec on the restored bio so the
>> bi_remaining is accounted for correctly.
>>
>> Reported-by: fengguang.wu@xxxxxxxxx
>> Cc: Kent Overstreet <kmo@xxxxxxxxxxxxx>
>> CC: Jens Axboe <axboe@xxxxxxxxx>
>> Signed-off-by: Muthukumar Ratty <muthur@xxxxxxxxx>
>> --------
>>
>> fs/btrfs/volumes.c | 6 +++++-
>> 1 files changed, 5 insertions(+), 1 deletions(-)
>>
>> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
>> index f2130de..edfed52 100644
>> --- a/fs/btrfs/volumes.c
>> +++ b/fs/btrfs/volumes.c
>> @@ -5316,7 +5316,11 @@ static void btrfs_end_bio(struct bio *bio, int err)
>> }
>> kfree(bbio);
>>
>> - bio_endio(bio, err);
>> + /*
>> + * Call endio_nodec on the restored bio so the bi_remaining is
>> + * accounted for correctly
>> + */
>> + bio_endio_nodec(bio, err);
>> } else if (!is_orig_bio) {
>> bio_put(bio);
>> }
>
> Interestingly, the BUG message disappeared but it blocks the test run.
> In the end, the test watchdog reboots the machine with SysRq:
>
> 2014-01-04 23:13:02 mount -t btrfs /dev/vda /fs/vda
> [ 20.184264] btrfs: device fsid f0e06999-0518-47e0-a622-21b8749438be devid 1 transid 4 /dev/vda
> [ 20.186552] btrfs: disk space caching is enabled
> [ 131.360457] random: nonblocking pool is initialized
> ==> [ 1465.069342] SysRq : Emergency Sync
> ==> [ 1475.071055] SysRq : Resetting
>
> Attached is the full dmesg for a good run (v3.13-rc7) and a bad run
> (this patch).
>
> Thanks,
> Fengguang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/