lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 681/879] NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layout
    Date
    From: Trond Myklebust <trond.myklebust@hammerspace.com>

    [ Upstream commit 3764a17e31d579cf9b4bd0a69894b577e8d75702 ]

    Commit 587f03deb69b caused pnfs_update_layout() to stop returning ENOMEM
    when the memory allocation fails, and hence causes it to fall back to
    trying to do I/O through the MDS. There is no guarantee that this will
    fare any better. If we're failing the pNFS layout allocation, then we
    should just redirty the page and retry later.

    Reported-by: Olga Kornievskaia <aglo@umich.edu>
    Fixes: 587f03deb69b ("pnfs: refactor send_layoutget")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/nfs/pnfs.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
    index 856c962273c7..68a87be3e6f9 100644
    --- a/fs/nfs/pnfs.c
    +++ b/fs/nfs/pnfs.c
    @@ -2000,6 +2000,7 @@ pnfs_update_layout(struct inode *ino,
    lo = pnfs_find_alloc_layout(ino, ctx, gfp_flags);
    if (lo == NULL) {
    spin_unlock(&ino->i_lock);
    + lseg = ERR_PTR(-ENOMEM);
    trace_pnfs_update_layout(ino, pos, count, iomode, lo, lseg,
    PNFS_UPDATE_LAYOUT_NOMEM);
    goto out;
    @@ -2128,6 +2129,7 @@ pnfs_update_layout(struct inode *ino,

    lgp = pnfs_alloc_init_layoutget_args(ino, ctx, &stateid, &arg, gfp_flags);
    if (!lgp) {
    + lseg = ERR_PTR(-ENOMEM);
    trace_pnfs_update_layout(ino, pos, count, iomode, lo, NULL,
    PNFS_UPDATE_LAYOUT_NOMEM);
    nfs_layoutget_end(lo);
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-08 03:36    [W:2.808 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site