From: Andrew Morton Attempt to fix reiser4 for git-block changes. And for some changes I made to fs-writeback.c return values. Cc: Vladimir Saveliev Cc: Edward Shishkin Cc: Jens Axboe Signed-off-by: Andrew Morton --- fs/reiser4/flush_queue.c | 3 --- fs/reiser4/page_cache.c | 8 -------- fs/reiser4/status_flags.c | 2 -- fs/reiser4/super_ops.c | 10 ++++++---- fs/reiser4/vfs_ops.c | 1 - 5 files changed, 6 insertions(+), 18 deletions(-) diff -puN fs/reiser4/page_cache.c~reiser4-vs-git-block fs/reiser4/page_cache.c --- a/fs/reiser4/page_cache.c~reiser4-vs-git-block +++ a/fs/reiser4/page_cache.c @@ -569,14 +569,6 @@ static struct address_space_operations f .writepage = reiser4_writepage, /* this is called to read formatted node */ .readpage = formatted_readpage, - /* ->sync_page() method of fake inode address space operations. Called - from wait_on_page() and lock_page(). - - This is most annoyingly misnomered method. Actually it is called - from wait_on_page_bit() and lock_page() and its purpose is to - actually start io by jabbing device drivers. - */ - .sync_page = block_sync_page, /* Write back some dirty pages from this mapping. Called from sync. called during sync (pdflush) */ .writepages = writepages_fake, diff -puN fs/reiser4/flush_queue.c~reiser4-vs-git-block fs/reiser4/flush_queue.c --- a/fs/reiser4/flush_queue.c~reiser4-vs-git-block +++ a/fs/reiser4/flush_queue.c @@ -236,9 +236,6 @@ static int wait_io(flush_queue_t * fq, i super = reiser4_get_current_sb(); - /* FIXME: this is instead of blk_run_queues() */ - blk_run_address_space(reiser4_get_super_fake(super)->i_mapping); - if (!(super->s_flags & MS_RDONLY)) wait_event(fq->wait, atomic_read(&fq->nr_submitted) == 0); diff -puN fs/reiser4/super_ops.c~reiser4-vs-git-block fs/reiser4/super_ops.c --- a/fs/reiser4/super_ops.c~reiser4-vs-git-block +++ a/fs/reiser4/super_ops.c @@ -394,15 +394,16 @@ static void reiser4_clear_inode(struct i * mapping - dirty pages get into atoms. Writeout is called to flush some * atoms. */ -static void reiser4_sync_inodes(struct super_block *super, +static int reiser4_sync_inodes(struct super_block *super, struct writeback_control *wbc) { reiser4_context *ctx; long to_write; + int ret; if (wbc->for_kupdate) /* reiser4 has its own means of periodical write-out */ - return; + return 0; to_write = wbc->nr_to_write; assert("vs-49", wbc->older_than_this == NULL); @@ -410,14 +411,14 @@ static void reiser4_sync_inodes(struct s ctx = reiser4_init_context(super); if (IS_ERR(ctx)) { warning("vs-13", "failed to init context"); - return; + return PTR_ERR(ctx); } /* * call reiser4_writepages for each of dirty inodes to turn dirty pages * into transactions if they were not yet. */ - generic_sync_sb_inodes(super, wbc); + ret = generic_sync_sb_inodes(super, wbc); /* flush goes here */ wbc->nr_to_write = to_write; @@ -426,6 +427,7 @@ static void reiser4_sync_inodes(struct s /* avoid recursive calls to ->sync_inodes */ context_set_commit_async(ctx); reiser4_exit_context(ctx); + return ret; } /** diff -puN fs/reiser4/status_flags.c~reiser4-vs-git-block fs/reiser4/status_flags.c --- a/fs/reiser4/status_flags.c~reiser4-vs-git-block +++ a/fs/reiser4/status_flags.c @@ -63,7 +63,6 @@ int reiser4_status_init(reiser4_block_nr } lock_page(page); submit_bio(READ, bio); - blk_run_address_space(reiser4_get_super_fake(sb)->i_mapping); wait_on_page_locked(page); if (!PageUptodate(page)) { warning("green-2007", @@ -158,7 +157,6 @@ int reiser4_status_write(__u64 status, _ lock_page(get_super_private(sb)->status_page); // Safe as nobody should touch our page. /* We can block now, but we have no other choice anyway */ submit_bio(WRITE, bio); - blk_run_address_space(reiser4_get_super_fake(sb)->i_mapping); return 0; // We do not wait for io to finish. } diff -puN fs/reiser4/vfs_ops.c~reiser4-vs-git-block fs/reiser4/vfs_ops.c --- a/fs/reiser4/vfs_ops.c~reiser4-vs-git-block +++ a/fs/reiser4/vfs_ops.c @@ -168,7 +168,6 @@ void reiser4_writeout(struct super_block /* do not put more requests to overload write queue */ if (wbc->nonblocking && bdi_write_congested(mapping->backing_dev_info)) { - blk_run_address_space(mapping); wbc->encountered_congestion = 1; break; } _