summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorJon Derrick <jonathan.derrick@intel.com>2018-07-02 18:45:18 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-11 16:29:19 +0200
commitfba3230595cb7c27ba27a4e100cdf9e4b4b273b9 (patch)
tree6e1ea931440dbffab4c8efca986ca534229f30d2 /block
parent54bf664ae4fa0b27d8fefc64514509e63dd89929 (diff)
ext4: check superblock mapped prior to committing
commit a17712c8e4be4fa5404d20e9cd3b2b21eae7bc56 upstream. 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@intel.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Cc: stable@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions