writeback: get rid of generic_sync_sb_inodes() export
This adds two new exported functions: - writeback_inodes_sb(), which only attempts to writeback dirty inodes on this super_block, for WB_SYNC_NONE writeout. - sync_inodes_sb(), which writes out all dirty inodes on this super_block and also waits for the IO to complete. Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
@@ -65,26 +65,14 @@
|
||||
static int shrink_liability(struct ubifs_info *c, int nr_to_write)
|
||||
{
|
||||
int nr_written;
|
||||
struct writeback_control wbc = {
|
||||
.sync_mode = WB_SYNC_NONE,
|
||||
.range_end = LLONG_MAX,
|
||||
.nr_to_write = nr_to_write,
|
||||
};
|
||||
|
||||
generic_sync_sb_inodes(c->vfs_sb, &wbc);
|
||||
nr_written = nr_to_write - wbc.nr_to_write;
|
||||
|
||||
nr_written = writeback_inodes_sb(c->vfs_sb);
|
||||
if (!nr_written) {
|
||||
/*
|
||||
* Re-try again but wait on pages/inodes which are being
|
||||
* written-back concurrently (e.g., by pdflush).
|
||||
*/
|
||||
memset(&wbc, 0, sizeof(struct writeback_control));
|
||||
wbc.sync_mode = WB_SYNC_ALL;
|
||||
wbc.range_end = LLONG_MAX;
|
||||
wbc.nr_to_write = nr_to_write;
|
||||
generic_sync_sb_inodes(c->vfs_sb, &wbc);
|
||||
nr_written = nr_to_write - wbc.nr_to_write;
|
||||
nr_written = sync_inodes_sb(c->vfs_sb);
|
||||
}
|
||||
|
||||
dbg_budg("%d pages were written back", nr_written);
|
||||
|
Reference in New Issue
Block a user