• NeilBrown's avatar
    NFS: Use an appropriate work queue for direct-write completion · 46483c2e
    NeilBrown authored
    When a direct-write completes, a work_struct is schedule to handle
    the completion.
    When NFS is being used for swap, the direct write might be a swap-out,
    so memory allocation can block until the write completes.
    The work queue currently used is not WQ_MEM_RECLAIM, so tasks
    can block waiting for memory - this leads to deadlock.
    
    So use nfsiod_workqueue instead.  This will always have a running
    thread, and work items should never block waiting for memory.
    Signed-off-by: default avatarNeil Brown <neilb@suse.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    46483c2e
direct.c 28.6 KB