@@ -351,8 +351,7 @@ xfs_buf_alloc_slab(
static int
xfs_buf_alloc_pages(
struct xfs_buf *bp,
- xfs_buf_flags_t flags,
- bool fail_fast)
+ xfs_buf_flags_t flags)
{
gfp_t gfp_mask = __GFP_NOWARN;
int i;
@@ -384,7 +383,7 @@ xfs_buf_alloc_pages(
retry:
page = alloc_page(gfp_mask);
if (unlikely(!page)) {
- if (fail_fast) {
+ if (flags & XBF_READ_AHEAD) {
bp->b_page_count = i;
xfs_buf_free_pages(bp);
return -ENOMEM;
@@ -682,8 +681,7 @@ xfs_buf_get_map(
*/
if (BBTOB(new_bp->b_length) >= PAGE_SIZE ||
xfs_buf_alloc_slab(new_bp, flags) < 0) {
- error = xfs_buf_alloc_pages(new_bp, flags,
- flags & XBF_READ_AHEAD);
+ error = xfs_buf_alloc_pages(new_bp, flags);
if (error)
goto out_free_buf;
}
@@ -924,7 +922,7 @@ xfs_buf_get_uncached(
if (error)
goto fail;
- error = xfs_buf_alloc_pages(bp, flags, true);
+ error = xfs_buf_alloc_pages(bp, flags);
if (error)
goto fail_free_buf;
There is no good reason why xfs_buf_get_uncached should fail on the first allocation failure, so make it behave the same as the normal xfs_buf_get_map path. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_buf.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)