]> git.ipfire.org Git - people/arne_f/kernel.git/commit
dm log writes: make sure super sector log updates are written in order
authorzhangyi (F) <yi.zhang@huawei.com>
Wed, 5 Jun 2019 13:27:08 +0000 (21:27 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Jul 2019 11:16:00 +0000 (13:16 +0200)
commitdd53bbb6538b5d0e871245ebd72dc95a015b49f7
tree7654c4ba4aaa7511bd96cab157dbecbc665f60a1
parent97e6fe106cc4edb70ff230ac0a5d1f438e21f0be
dm log writes: make sure super sector log updates are written in order

commit 211ad4b733037f66f9be0a79eade3da7ab11cbb8 upstream.

Currently, although we submit super bios in order (and super.nr_entries
is incremented by each logged entry), submit_bio() is async so each
super sector may not be written to log device in order and then the
final nr_entries may be smaller than it should be.

This problem can be reproduced by the xfstests generic/455 with ext4:

  QA output created by 455
 -Silence is golden
 +mark 'end' does not exist

Fix this by serializing submission of super sectors to make sure each
is written to the log disk in order.

Fixes: 0e9cebe724597 ("dm: add log writes target")
Cc: stable@vger.kernel.org
Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
Suggested-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-log-writes.c