From: NeilBrown <neilb@suse.de>
To: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: linux-nfs@vger.kernel.org
Subject: [PATCH 0/2] remove deadlock risk with loop-back mounted NFS filesystems
Date: Mon, 18 Aug 2014 16:22:54 +1000 [thread overview]
Message-ID: <20140818061727.1449.89101.stgit@notabene.brown> (raw)
Now that the new wait_on_bit code is in the kernel (in 3.17-rc1) these
last two patches to support deadlock-free loop-back NFS mounts can be
applied (hopefully to go upstream for 3.18-rc1).
A deadlock can happen if nfsd tries to allocate memory, calls
->releasepage() on a page in an NFS filesystem, and nfs_release_page()
blocks waiting for the nfsd to confirm the COMMIT.
With this patch nfs_release_page() will not wait more than 100ms
for COMMIT to a non-remote nfs fileserver.
Thanks,
NeilBrown
---
NeilBrown (2):
SUNRPC: track when a client connection is routed to the local host.
NFS: avoid deadlocks with loop-back mounted NFS filesystems.
fs/nfs/file.c | 2 +
fs/nfs/write.c | 72 ++++++++++++++++++++++++++++++++++++++++---
include/linux/freezer.h | 10 ++++++
include/linux/sunrpc/clnt.h | 1 +
include/linux/sunrpc/xprt.h | 1 +
include/uapi/linux/nfs_fs.h | 3 ++
net/sunrpc/clnt.c | 25 +++++++++++++++
net/sunrpc/xprtsock.c | 9 +++++
8 files changed, 117 insertions(+), 6 deletions(-)
--
Signature
next reply other threads:[~2014-08-18 6:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-18 6:22 NeilBrown [this message]
2014-08-18 6:22 ` [PATCH 2/2] NFS: avoid deadlocks with loop-back mounted NFS filesystems NeilBrown
2014-08-21 0:45 ` Trond Myklebust
2014-08-21 1:11 ` NeilBrown
2014-08-21 1:42 ` Trond Myklebust
2014-08-21 2:15 ` NeilBrown
2014-08-21 3:04 ` NeilBrown
2014-08-21 3:48 ` Trond Myklebust
2014-08-18 6:22 ` [PATCH 1/2] SUNRPC: track when a client connection is routed to the local host NeilBrown
2014-08-21 0:33 ` Trond Myklebust
2014-08-21 1:15 ` NeilBrown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140818061727.1449.89101.stgit@notabene.brown \
--to=neilb@suse.de \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@primarydata.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.