diff options
author | Christoph Hellwig <hch@lst.de> | 2010-10-04 14:25:33 +0200 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-10-04 14:25:33 +0200 |
commit | aaead25b954879e1a708ff2f3602f494c18d20b5 (patch) | |
tree | 85c42d7c603bba80035079400764bffd27b2ff0e /fs/exofs/super.c | |
parent | c6ea21e35bf3691cad59647c771e6606067f627d (diff) | |
download | blackbird-op-linux-aaead25b954879e1a708ff2f3602f494c18d20b5.tar.gz blackbird-op-linux-aaead25b954879e1a708ff2f3602f494c18d20b5.zip |
writeback: always use sb->s_bdi for writeback purposes
We currently use struct backing_dev_info for various different purposes.
Originally it was introduced to describe a backing device which includes
an unplug and congestion function and various bits of readahead information
and VM-relevant flags. We're also using for tracking dirty inodes for
writeback.
To make writeback properly find all inodes we need to only access the
per-filesystem backing_device pointed to by the superblock in ->s_bdi
inside the writeback code, and not the instances pointeded to by
inode->i_mapping->backing_dev which can be overriden by special devices
or might not be set at all by some filesystems.
Long term we should split out the writeback-relevant bits of struct
backing_device_info (which includes more than the current bdi_writeback)
and only point to it from the superblock while leaving the traditional
backing device as a separate structure that can be overriden by devices.
The one exception for now is the block device filesystem which really
wants different writeback contexts for it's different (internal) inodes
to handle the writeout more efficiently. For now we do this with
a hack in fs-writeback.c because we're so late in the cycle, but in
the future I plan to replace this with a superblock method that allows
for multiple writeback contexts per filesystem.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'fs/exofs/super.c')
0 files changed, 0 insertions, 0 deletions