mirror of https://gitee.com/openkylin/linux.git
mm: drop "wait" parameter from write_one_page()
The callers all set it to 1. Also, make it clear that this function will not set any sort of AS_* error, and that the caller must do so if necessary. No existing caller uses this on normal files, so none of them need it. Also, add __must_check here since, in general, the callers need to handle an error here in some fashion. Link: http://lkml.kernel.org/r/20170525103303.6524-1-jlayton@redhat.com Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
c86daad2c2
commit
2b69c8280c
|
@ -72,7 +72,7 @@ static int exofs_commit_chunk(struct page *page, loff_t pos, unsigned len)
|
|||
set_page_dirty(page);
|
||||
|
||||
if (IS_DIRSYNC(dir))
|
||||
err = write_one_page(page, 1);
|
||||
err = write_one_page(page);
|
||||
else
|
||||
unlock_page(page);
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ static int ext2_commit_chunk(struct page *page, loff_t pos, unsigned len)
|
|||
}
|
||||
|
||||
if (IS_DIRSYNC(dir)) {
|
||||
err = write_one_page(page, 1);
|
||||
err = write_one_page(page);
|
||||
if (!err)
|
||||
err = sync_inode_metadata(dir, 1);
|
||||
} else {
|
||||
|
|
|
@ -711,7 +711,7 @@ void force_metapage(struct metapage *mp)
|
|||
get_page(page);
|
||||
lock_page(page);
|
||||
set_page_dirty(page);
|
||||
write_one_page(page, 1);
|
||||
write_one_page(page);
|
||||
clear_bit(META_forcewrite, &mp->flag);
|
||||
put_page(page);
|
||||
}
|
||||
|
@ -756,7 +756,7 @@ void release_metapage(struct metapage * mp)
|
|||
set_page_dirty(page);
|
||||
if (test_bit(META_sync, &mp->flag)) {
|
||||
clear_bit(META_sync, &mp->flag);
|
||||
write_one_page(page, 1);
|
||||
write_one_page(page);
|
||||
lock_page(page); /* write_one_page unlocks the page */
|
||||
}
|
||||
} else if (mp->lsn) /* discard_metapage doesn't remove it */
|
||||
|
|
|
@ -57,7 +57,7 @@ static int dir_commit_chunk(struct page *page, loff_t pos, unsigned len)
|
|||
mark_inode_dirty(dir);
|
||||
}
|
||||
if (IS_DIRSYNC(dir))
|
||||
err = write_one_page(page, 1);
|
||||
err = write_one_page(page);
|
||||
else
|
||||
unlock_page(page);
|
||||
return err;
|
||||
|
|
|
@ -45,7 +45,7 @@ static int dir_commit_chunk(struct page *page, loff_t pos, unsigned len)
|
|||
mark_inode_dirty(dir);
|
||||
}
|
||||
if (IS_DIRSYNC(dir))
|
||||
err = write_one_page(page, 1);
|
||||
err = write_one_page(page);
|
||||
else
|
||||
unlock_page(page);
|
||||
return err;
|
||||
|
|
|
@ -53,7 +53,7 @@ static int ufs_commit_chunk(struct page *page, loff_t pos, unsigned len)
|
|||
mark_inode_dirty(dir);
|
||||
}
|
||||
if (IS_DIRSYNC(dir))
|
||||
err = write_one_page(page, 1);
|
||||
err = write_one_page(page);
|
||||
else
|
||||
unlock_page(page);
|
||||
return err;
|
||||
|
|
|
@ -2199,7 +2199,7 @@ extern void filemap_map_pages(struct vm_fault *vmf,
|
|||
extern int filemap_page_mkwrite(struct vm_fault *vmf);
|
||||
|
||||
/* mm/page-writeback.c */
|
||||
int write_one_page(struct page *page, int wait);
|
||||
int __must_check write_one_page(struct page *page);
|
||||
void task_dirty_inc(struct task_struct *tsk);
|
||||
|
||||
/* readahead.c */
|
||||
|
|
|
@ -2366,15 +2366,16 @@ int do_writepages(struct address_space *mapping, struct writeback_control *wbc)
|
|||
}
|
||||
|
||||
/**
|
||||
* write_one_page - write out a single page and optionally wait on I/O
|
||||
* write_one_page - write out a single page and wait on I/O
|
||||
* @page: the page to write
|
||||
* @wait: if true, wait on writeout
|
||||
*
|
||||
* The page must be locked by the caller and will be unlocked upon return.
|
||||
*
|
||||
* write_one_page() returns a negative error code if I/O failed.
|
||||
* write_one_page() returns a negative error code if I/O failed. Note that
|
||||
* the address_space is not marked for error. The caller must do this if
|
||||
* needed.
|
||||
*/
|
||||
int write_one_page(struct page *page, int wait)
|
||||
int write_one_page(struct page *page)
|
||||
{
|
||||
struct address_space *mapping = page->mapping;
|
||||
int ret = 0;
|
||||
|
@ -2385,13 +2386,12 @@ int write_one_page(struct page *page, int wait)
|
|||
|
||||
BUG_ON(!PageLocked(page));
|
||||
|
||||
if (wait)
|
||||
wait_on_page_writeback(page);
|
||||
wait_on_page_writeback(page);
|
||||
|
||||
if (clear_page_dirty_for_io(page)) {
|
||||
get_page(page);
|
||||
ret = mapping->a_ops->writepage(page, &wbc);
|
||||
if (ret == 0 && wait) {
|
||||
if (ret == 0) {
|
||||
wait_on_page_writeback(page);
|
||||
if (PageError(page))
|
||||
ret = -EIO;
|
||||
|
|
Loading…
Reference in New Issue