[stable] nilfs2: fix sync silent failure

From: Ryusuke Konishi
Date: Tue May 18 2010 - 12:30:36 EST

Please consider commit 973bec34bfc1bc2465646181653d67f767d418c8 for
inclusion in 2.6.33.y and 2.6.32.y.

Here is the commit message. It fixes a grave regression since 2.6.32,
which makes "sync" operation nonfunctional, and leading to unexpected
user's data loss.

I have tested the patch, and confirmed that it restores the function
of "sync" for both 2.6.33.y and 2.6.32.y. Unfortunetaly, the patch
didn't apply to 2.6.32.y as is (3-way merge was required).

To make sure, I will later post an adjusted patch against 2.6.32.y.

Ryusuke Konishi

commit 973bec34bfc1bc2465646181653d67f767d418c8
Author: Ryusuke Konishi <konishi.ryusuke@xxxxxxxxxxxxx>
Date: Mon May 3 21:00:48 2010 +0900

nilfs2: fix sync silent failure

As of 32a88aa1, __sync_filesystem() will return 0 if s_bdi is not set.
And nilfs does not set s_bdi anywhere. I noticed this problem by the
warning introduced by the recent commit 5129a469 ("Catch filesystem
lacking s_bdi").

WARNING: at fs/super.c:959 vfs_kern_mount+0xc5/0x14e()
Hardware name: PowerEdge 2850
Modules linked in: nilfs2 loop tpm_tis tpm tpm_bios video shpchp pci_hotplug output dcdbas
Pid: 3773, comm: mount.nilfs2 Not tainted 2.6.34-rc6-debug #38
Call Trace:
[<c1028422>] warn_slowpath_common+0x60/0x90
[<c102845f>] warn_slowpath_null+0xd/0x10
[<c1095936>] vfs_kern_mount+0xc5/0x14e
[<c1095a03>] do_kern_mount+0x32/0xbd
[<c10a811e>] do_mount+0x671/0x6d0
[<c1073794>] ? __get_free_pages+0x1f/0x21
[<c10a684f>] ? copy_mount_options+0x2b/0xe2
[<c107b634>] ? strndup_user+0x48/0x67
[<c10a81de>] sys_mount+0x61/0x8f
[<c100280c>] sysenter_do_call+0x12/0x32

This ensures to set s_bdi for nilfs and fixes the sync silent failure.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@xxxxxxxxxxxxx>
Acked-by: Jens Axboe <jens.axboe@xxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/