NFS: Avoid writeback threads getting stuck in mempool_alloc()
[ Upstream commit 0bae835b63c53f86cdc524f5962e39409585b22c ] In a low memory situation, allow the NFS writeback code to fail without getting stuck in infinite loops in mempool_alloc(). Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
34681aeddc
commit
c74e2f6ecc
@@ -94,9 +94,15 @@ EXPORT_SYMBOL_GPL(nfs_commit_free);
|
||||
|
||||
static struct nfs_pgio_header *nfs_writehdr_alloc(void)
|
||||
{
|
||||
struct nfs_pgio_header *p = mempool_alloc(nfs_wdata_mempool, GFP_KERNEL);
|
||||
struct nfs_pgio_header *p;
|
||||
|
||||
memset(p, 0, sizeof(*p));
|
||||
p = kmem_cache_zalloc(nfs_wdata_cachep, nfs_io_gfp_mask());
|
||||
if (!p) {
|
||||
p = mempool_alloc(nfs_wdata_mempool, GFP_NOWAIT);
|
||||
if (!p)
|
||||
return NULL;
|
||||
memset(p, 0, sizeof(*p));
|
||||
}
|
||||
p->rw_mode = FMODE_WRITE;
|
||||
return p;
|
||||
}
|
||||
|
Reference in New Issue
Block a user