From: Christoph Hellwig <hch@infradead.org>
To: Jeff Layton <jlayton@primarydata.com>
Cc: bfields@fieldses.org, linux-nfs@vger.kernel.org, hch@infradead.org
Subject: Re: [PATCH 3/7] locks: add file_has_lease to prevent delegation break races
Date: Tue, 15 Jul 2014 10:17:52 -0700 [thread overview]
Message-ID: <20140715171752.GA12059@infradead.org> (raw)
In-Reply-To: <1405420669-4030-4-git-send-email-jlayton@primarydata.com>
On Tue, Jul 15, 2014 at 06:37:45AM -0400, Jeff Layton wrote:
> Once we remove the client_mutex, we'll have a potential race between
> setting a lease on a file and breaking the delegation. We may set the
> lease, but by the time we go to hash it, it may have already been
> broken. Currently, we know that this won't happen as the nfs4_laundromat
> takes the client_mutex, but we want to remove that.
>
> As part of that fix, add a function that can tell us whether a
> particular file has a lease set on it. In a later nfsd patch, we'll use
> that to close the potential race window.
>
> Signed-off-by: Jeff Layton <jlayton@primarydata.com>
Looks reasonable, I don't really understand why we can drop out of the
loop when finding the first non-lease, but other code in locks.c also
does this, so I assume it is intentional.
The only real question I have is why this is in locks.c, while
check_for_locks that does the equivalent for real file locks is
implemented in the nfsd code. But I think it's better to have these
sorts of interfaces in locks.c and check_for_locks should move there
eventually.
Reviewed-by: Christoph Hellwig <hch@lst.de>
next prev parent reply other threads:[~2014-07-15 17:17 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-15 10:37 [PATCH 0/7] nfsd: more delegation fixes to prepare for client_mutex removal Jeff Layton
2014-07-15 10:37 ` [PATCH 1/7] nfsd: nfs4_alloc_init_lease should take a nfs4_file arg Jeff Layton
2014-07-15 16:24 ` Christoph Hellwig
2014-07-15 10:37 ` [PATCH 2/7] nfsd: Ensure stateids remain unique until they are freed Jeff Layton
2014-07-15 17:15 ` Christoph Hellwig
2014-07-16 12:17 ` Jeff Layton
2014-07-16 13:49 ` Christoph Hellwig
2014-07-16 14:28 ` Jeff Layton
2014-07-16 14:29 ` Christoph Hellwig
2014-07-16 14:34 ` Jeff Layton
2014-07-15 10:37 ` [PATCH 3/7] locks: add file_has_lease to prevent delegation break races Jeff Layton
2014-07-15 17:17 ` Christoph Hellwig [this message]
2014-07-15 17:31 ` Jeff Layton
2014-07-15 10:37 ` [PATCH 4/7] nfsd: Protect the nfs4_file delegation fields using the fi_lock Jeff Layton
2014-07-15 10:37 ` [PATCH 5/7] nfsd: Move the delegation reference counter into the struct nfs4_stid Jeff Layton
2014-07-16 9:37 ` Christoph Hellwig
2014-07-15 10:37 ` [PATCH 6/7] nfsd: Simplify stateid management Jeff Layton
2014-07-15 10:37 ` [PATCH 7/7] nfsd: Fix delegation revocation Jeff Layton
2014-07-15 16:24 ` [PATCH 0/7] nfsd: more delegation fixes to prepare for client_mutex removal Christoph Hellwig
2014-07-16 12:37 ` [PATCH 8/7] nfsd: Convert delegation counter to an atomic_long_t type Jeff Layton
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=20140715171752.GA12059@infradead.org \
--to=hch@infradead.org \
--cc=bfields@fieldses.org \
--cc=jlayton@primarydata.com \
--cc=linux-nfs@vger.kernel.org \
/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.