Re: [PATCH] ext4: Check superblock mapped prior to committing

From: Theodore Y. Ts'o
Date: Mon Jul 02 2018 - 18:51:15 EST


On Fri, Jun 29, 2018 at 01:36:35PM -0600, Jon Derrick wrote:
> This patch attempts to close a hole leading to a BUG seen with hot
> removals during writes [1].
>
> A block device (NVME namespace in this test case) is formatted to EXT4
> without partitions. It's mounted and write I/O is run to a file, then
> the device is hot removed from the slot. The superblock attempts to be
> written to the drive which is no longer present.
>
> The typical chain of events leading to the BUG:
> ext4_commit_super()
> __sync_dirty_buffer()
> submit_bh()
> submit_bh_wbc()
> BUG_ON(!buffer_mapped(bh));
>
> This fix checks for the superblock's buffer head being mapped prior to
> syncing.
>
> [1] https://www.spinics.net/lists/linux-ext4/msg56527.html
>
> Signed-off-by: Jon Derrick <jonathan.derrick@xxxxxxxxx>

Thanks, applied.

- Ted