writeback: remove writeback_inodes_wbc
This was just an odd wrapper around writeback_inodes_wb. Removing this also allows to get rid of the bdi member of struct writeback_control which was rather out of place there. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
Родитель
06d738fa91
Коммит
9c3a8ee8a1
|
@ -680,7 +680,6 @@ int afs_writeback_all(struct afs_vnode *vnode)
|
||||||
{
|
{
|
||||||
struct address_space *mapping = vnode->vfs_inode.i_mapping;
|
struct address_space *mapping = vnode->vfs_inode.i_mapping;
|
||||||
struct writeback_control wbc = {
|
struct writeback_control wbc = {
|
||||||
.bdi = mapping->backing_dev_info,
|
|
||||||
.sync_mode = WB_SYNC_ALL,
|
.sync_mode = WB_SYNC_ALL,
|
||||||
.nr_to_write = LONG_MAX,
|
.nr_to_write = LONG_MAX,
|
||||||
.range_cyclic = 1,
|
.range_cyclic = 1,
|
||||||
|
|
|
@ -2594,7 +2594,6 @@ int extent_write_full_page(struct extent_io_tree *tree, struct page *page,
|
||||||
.sync_io = wbc->sync_mode == WB_SYNC_ALL,
|
.sync_io = wbc->sync_mode == WB_SYNC_ALL,
|
||||||
};
|
};
|
||||||
struct writeback_control wbc_writepages = {
|
struct writeback_control wbc_writepages = {
|
||||||
.bdi = wbc->bdi,
|
|
||||||
.sync_mode = wbc->sync_mode,
|
.sync_mode = wbc->sync_mode,
|
||||||
.older_than_this = NULL,
|
.older_than_this = NULL,
|
||||||
.nr_to_write = 64,
|
.nr_to_write = 64,
|
||||||
|
@ -2628,7 +2627,6 @@ int extent_write_locked_range(struct extent_io_tree *tree, struct inode *inode,
|
||||||
.sync_io = mode == WB_SYNC_ALL,
|
.sync_io = mode == WB_SYNC_ALL,
|
||||||
};
|
};
|
||||||
struct writeback_control wbc_writepages = {
|
struct writeback_control wbc_writepages = {
|
||||||
.bdi = inode->i_mapping->backing_dev_info,
|
|
||||||
.sync_mode = mode,
|
.sync_mode = mode,
|
||||||
.older_than_this = NULL,
|
.older_than_this = NULL,
|
||||||
.nr_to_write = nr_pages * 2,
|
.nr_to_write = nr_pages * 2,
|
||||||
|
|
|
@ -614,8 +614,8 @@ static int writeback_sb_inodes(struct super_block *sb,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void writeback_inodes_wb(struct bdi_writeback *wb,
|
void writeback_inodes_wb(struct bdi_writeback *wb,
|
||||||
struct writeback_control *wbc)
|
struct writeback_control *wbc)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
@ -660,13 +660,6 @@ static void writeback_inodes_wb(struct bdi_writeback *wb,
|
||||||
/* Leave any unwritten inodes on b_io */
|
/* Leave any unwritten inodes on b_io */
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeback_inodes_wbc(struct writeback_control *wbc)
|
|
||||||
{
|
|
||||||
struct backing_dev_info *bdi = wbc->bdi;
|
|
||||||
|
|
||||||
writeback_inodes_wb(&bdi->wb, wbc);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The maximum number of pages to writeout in a single bdi flush/kupdate
|
* The maximum number of pages to writeout in a single bdi flush/kupdate
|
||||||
* operation. We do this so we don't hold I_SYNC against an inode for
|
* operation. We do this so we don't hold I_SYNC against an inode for
|
||||||
|
@ -705,7 +698,6 @@ static long wb_writeback(struct bdi_writeback *wb,
|
||||||
struct wb_writeback_args *args)
|
struct wb_writeback_args *args)
|
||||||
{
|
{
|
||||||
struct writeback_control wbc = {
|
struct writeback_control wbc = {
|
||||||
.bdi = wb->bdi,
|
|
||||||
.sb = args->sb,
|
.sb = args->sb,
|
||||||
.sync_mode = args->sync_mode,
|
.sync_mode = args->sync_mode,
|
||||||
.older_than_this = NULL,
|
.older_than_this = NULL,
|
||||||
|
|
|
@ -27,8 +27,6 @@ enum writeback_sync_modes {
|
||||||
* in a manner such that unspecified fields are set to zero.
|
* in a manner such that unspecified fields are set to zero.
|
||||||
*/
|
*/
|
||||||
struct writeback_control {
|
struct writeback_control {
|
||||||
struct backing_dev_info *bdi; /* If !NULL, only write back this
|
|
||||||
queue */
|
|
||||||
struct super_block *sb; /* if !NULL, only write inodes from
|
struct super_block *sb; /* if !NULL, only write inodes from
|
||||||
this super_block */
|
this super_block */
|
||||||
enum writeback_sync_modes sync_mode;
|
enum writeback_sync_modes sync_mode;
|
||||||
|
@ -66,7 +64,8 @@ int inode_wait(void *);
|
||||||
void writeback_inodes_sb(struct super_block *);
|
void writeback_inodes_sb(struct super_block *);
|
||||||
int writeback_inodes_sb_if_idle(struct super_block *);
|
int writeback_inodes_sb_if_idle(struct super_block *);
|
||||||
void sync_inodes_sb(struct super_block *);
|
void sync_inodes_sb(struct super_block *);
|
||||||
void writeback_inodes_wbc(struct writeback_control *wbc);
|
void writeback_inodes_wb(struct bdi_writeback *wb,
|
||||||
|
struct writeback_control *wbc);
|
||||||
long wb_do_writeback(struct bdi_writeback *wb, int force_wait);
|
long wb_do_writeback(struct bdi_writeback *wb, int force_wait);
|
||||||
void wakeup_flusher_threads(long nr_pages);
|
void wakeup_flusher_threads(long nr_pages);
|
||||||
|
|
||||||
|
|
|
@ -340,14 +340,13 @@ int bdi_has_dirty_io(struct backing_dev_info *bdi)
|
||||||
static void bdi_flush_io(struct backing_dev_info *bdi)
|
static void bdi_flush_io(struct backing_dev_info *bdi)
|
||||||
{
|
{
|
||||||
struct writeback_control wbc = {
|
struct writeback_control wbc = {
|
||||||
.bdi = bdi,
|
|
||||||
.sync_mode = WB_SYNC_NONE,
|
.sync_mode = WB_SYNC_NONE,
|
||||||
.older_than_this = NULL,
|
.older_than_this = NULL,
|
||||||
.range_cyclic = 1,
|
.range_cyclic = 1,
|
||||||
.nr_to_write = 1024,
|
.nr_to_write = 1024,
|
||||||
};
|
};
|
||||||
|
|
||||||
writeback_inodes_wbc(&wbc);
|
writeback_inodes_wb(&bdi->wb, &wbc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -495,7 +495,6 @@ static void balance_dirty_pages(struct address_space *mapping,
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
struct writeback_control wbc = {
|
struct writeback_control wbc = {
|
||||||
.bdi = bdi,
|
|
||||||
.sync_mode = WB_SYNC_NONE,
|
.sync_mode = WB_SYNC_NONE,
|
||||||
.older_than_this = NULL,
|
.older_than_this = NULL,
|
||||||
.nr_to_write = write_chunk,
|
.nr_to_write = write_chunk,
|
||||||
|
@ -537,7 +536,7 @@ static void balance_dirty_pages(struct address_space *mapping,
|
||||||
* up.
|
* up.
|
||||||
*/
|
*/
|
||||||
if (bdi_nr_reclaimable > bdi_thresh) {
|
if (bdi_nr_reclaimable > bdi_thresh) {
|
||||||
writeback_inodes_wbc(&wbc);
|
writeback_inodes_wb(&bdi->wb, &wbc);
|
||||||
pages_written += write_chunk - wbc.nr_to_write;
|
pages_written += write_chunk - wbc.nr_to_write;
|
||||||
get_dirty_limits(&background_thresh, &dirty_thresh,
|
get_dirty_limits(&background_thresh, &dirty_thresh,
|
||||||
&bdi_thresh, bdi);
|
&bdi_thresh, bdi);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче