diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-04-11 23:15:33 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-11 23:15:33 -0700 |
| commit | 60af4464478e1511998ad82d7cba3fbfb6c258dd (patch) | |
| tree | 72a135a60691645f8995e145b80a9d036ff4cf3f | |
| parent | 082825b67cf534c0ddee9168133b160ca4ba593f (diff) | |
[PATCH] mpage_writepages() cleanup
Rework the code layout a bit. No logic change.
| -rw-r--r-- | fs/mpage.c | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/fs/mpage.c b/fs/mpage.c index 24233fbd20ad..1f7d045fa905 100644 --- a/fs/mpage.c +++ b/fs/mpage.c @@ -650,32 +650,31 @@ retry: if (wbc->sync_mode != WB_SYNC_NONE) wait_on_page_writeback(page); - if (page->mapping == mapping && !PageWriteback(page) && - clear_page_dirty_for_io(page)) { - if (writepage) { - ret = (*writepage)(page, wbc); - if (ret) { - if (ret == -ENOSPC) - set_bit(AS_ENOSPC, - &mapping->flags); - else - set_bit(AS_EIO, - &mapping->flags); - } - } else { - bio = mpage_writepage(bio, page, - get_block, &last_block_in_bio, - &ret, wbc); - } - if (ret || (--(wbc->nr_to_write) <= 0)) - done = 1; - if (wbc->nonblocking && - bdi_write_congested(bdi)) { - wbc->encountered_congestion = 1; - done = 1; + if (page->mapping != mapping || PageWriteback(page) || + !clear_page_dirty_for_io(page)) { + unlock_page(page); + continue; + } + + if (writepage) { + ret = (*writepage)(page, wbc); + if (ret) { + if (ret == -ENOSPC) + set_bit(AS_ENOSPC, + &mapping->flags); + else + set_bit(AS_EIO, + &mapping->flags); } } else { - unlock_page(page); + bio = mpage_writepage(bio, page, get_block, + &last_block_in_bio, &ret, wbc); + } + if (ret || (--(wbc->nr_to_write) <= 0)) + done = 1; + if (wbc->nonblocking && bdi_write_congested(bdi)) { + wbc->encountered_congestion = 1; + done = 1; } } pagevec_release(&pvec); |
