afs: Don't set PG_error on local EINTR or ENOMEM when filling a page
Don't set PG_error on a page if we get local EINTR or ENOMEM when filling a page for writing. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
ab94f5d0dd
commit
68ae849d7e
@ -212,7 +212,13 @@ int afs_page_filler(void *data, struct page *page)
|
|||||||
fscache_uncache_page(vnode->cache, page);
|
fscache_uncache_page(vnode->cache, page);
|
||||||
#endif
|
#endif
|
||||||
BUG_ON(PageFsCache(page));
|
BUG_ON(PageFsCache(page));
|
||||||
goto error;
|
|
||||||
|
if (ret == -EINTR ||
|
||||||
|
ret == -ENOMEM ||
|
||||||
|
ret == -ERESTARTSYS ||
|
||||||
|
ret == -EAGAIN)
|
||||||
|
goto error;
|
||||||
|
goto io_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetPageUptodate(page);
|
SetPageUptodate(page);
|
||||||
@ -231,10 +237,12 @@ int afs_page_filler(void *data, struct page *page)
|
|||||||
_leave(" = 0");
|
_leave(" = 0");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
io_error:
|
||||||
|
SetPageError(page);
|
||||||
|
goto error;
|
||||||
enomem:
|
enomem:
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
error:
|
error:
|
||||||
SetPageError(page);
|
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
_leave(" = %d", ret);
|
_leave(" = %d", ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user