bdi: reimplement bdev_inode_switch_bdi()
authorTejun Heo <tj@kernel.org>
Sun, 7 Sep 2014 23:04:01 +0000 (08:04 +0900)
committerJens Axboe <axboe@fb.com>
Mon, 8 Sep 2014 16:00:43 +0000 (10:00 -0600)
commit018a17bdc8658ad448497c84d4ba21b6985820ec
tree77bfb4ea1b75452dd68817d59770e8d1c6bd37ec
parent1a1e4530eacca37e85a4d66a164273c7dba9110c
bdi: reimplement bdev_inode_switch_bdi()

A block_device may be attached to different gendisks and thus
different bdis over time.  bdev_inode_switch_bdi() is used to switch
the associated bdi.  The function assumes that the inode could be
dirty and transfers it between bdis if so.  This is a bit nasty in
that it reaches into bdi internals.

This patch reimplements the function so that it writes out the inode
if dirty.  This is a lot simpler and can be implemented without
exposing bdi internals.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jens Axboe <axboe@fb.com>
fs/block_dev.c
include/linux/backing-dev.h
mm/backing-dev.c