hostfs: Handle page write errors correctly
If a page can't be written back, we need to call mapping_set_error(), not clear the page's Uptodate flag. Also remove the clearing of PageError on success; that flag is used for read errors, not write errors. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
This commit is contained in:
parent
31e748e4b1
commit
e775dfb33d
|
@ -416,15 +416,15 @@ static int hostfs_writepage(struct page *page, struct writeback_control *wbc)
|
|||
|
||||
err = write_file(HOSTFS_I(inode)->fd, &base, buffer, count);
|
||||
if (err != count) {
|
||||
ClearPageUptodate(page);
|
||||
if (err >= 0)
|
||||
err = -EIO;
|
||||
mapping_set_error(mapping, err);
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (base > inode->i_size)
|
||||
inode->i_size = base;
|
||||
|
||||
if (PageError(page))
|
||||
ClearPageError(page);
|
||||
err = 0;
|
||||
|
||||
out:
|
||||
|
|
Loading…
Reference in New Issue