fs: switch bdev inode bdi's correctly
authorDave Chinner <dchinner@redhat.com>
Thu, 21 Oct 2010 00:49:26 +0000 (11:49 +1100)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 26 Oct 2010 01:26:14 +0000 (21:26 -0400)
commita5491e0c7bb7387e3e6ff9994d6dc2efc78af56c
tree7573138ef2350fbf0ea02e237d5acebcdaea2780
parent99a38919241fd051b8d93b2e4d0c05ef0556d795
fs: switch bdev inode bdi's correctly

bdev inodes can remain dirty even after their last close. Hence the
BDI associated with the bdev->inode gets modified duringthe last
close to point to the default BDI. However, the bdev inode still
needs to be moved to the dirty lists of the new BDI, otherwise it
will corrupt the writeback list is was left on.

Add a new function bdev_inode_switch_bdi() to move all the bdi state
from the old bdi to the new one safely. This is only a temporary
measure until the bdev inode<->bdi lifecycle problems are sorted
out.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/block_dev.c