fs/super.c: sync ro remount after blocking writers
authorAndrew Ruder <andrew.ruder@elecsyscorp.com>
Thu, 30 Jan 2014 15:26:54 +0000 (09:26 -0600)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 31 Jan 2014 19:29:36 +0000 (14:29 -0500)
commit807612db2f9940b9fa6deaef054eb16d51bd3e00
treef22bc5b0debad1f1833c8d349e0dbd1b3fecd607
parent9115eac2c788c17b57c9256cb322fa7371972ddf
fs/super.c: sync ro remount after blocking writers

Move sync_filesystem() after sb_prepare_remount_readonly().  If writers
sneak in anywhere from sync_filesystem() to sb_prepare_remount_readonly()
it can cause inodes to be dirtied and writeback to occur well after
sys_mount() has completely successfully.

This was spotted by corrupted ubifs filesystems on reboot, but appears
that it can cause issues with any filesystem using writeback.

Cc: Artem Bityutskiy <dedekind1@gmail.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
CC: Richard Weinberger <richard@nod.at>
Co-authored-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/super.c