|
@@ -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;
|