Re: GPF in __mark_inode_dirty due to locked_inode_to_wb_and_lock_list returning NULL

From: Tejun Heo
Date: Wed Jul 13 2016 - 14:08:12 EST


Hello,

On Mon, Jul 04, 2016 at 04:15:35PM +0300, Nikolay Borisov wrote:
> So the btrfs fs was created inside a loop device and mounted with -o loop.
> Evidently from the oops it seems that this is the normal umount path, meaning
> that no device hot plugging was in action. Unfortunately I don't have a reproducer.
> However, the workload looks like the following:
>
> 1. mount -t btrfs -o compress=zlib -o subvol="${subvol}" -o loop "${storage_file}" "${mount_point}"
> 2. Do reads/writes (rsync) (dirtying some pages)
> 3. umount "${mount_point}"

I see. Yeah, normal umount path does destroy the block device and can
trigger the bug. Please ping if the issue happens again with the
patches applied.

Thanks.

--
tejun