From: "J. Bruce Fields" <bfields@redhat.com>
To: linux-fsdevel@vger.kernel.org
Cc: linux-nfs@vger.kernel.org, samba-technical@lists.samba.org,
Christoph Hellwig <hch@infradead.org>,
Al Viro <viro@zeniv.linux.org.uk>,
Mimi Zohar <zohar@linux.vnet.ibm.com>
Subject: breaking leases on metadata changes
Date: Wed, 21 Sep 2011 10:58:11 -0400 [thread overview]
Message-ID: <1316617097-21384-1-git-send-email-bfields@redhat.com> (raw)
So there's this longstanding problem that read leases should really be
broken on anything that changes an inode's metadata or any change to the
set of links pointing to the inode.
(Cc'ing samba-technical for confirmation of that statement from Samba's
point of view....)
So we need mutual exclusion between read leases and link, unlink,
rename, etc.
After contemplating increasingly complicated solutions for much too
long, I realized that the i_mutex is taken by all of those operations
except for rename--and it looks to me like rename could take i_mutex on
a renamed file as well.
So, here's my attempt. It passes some simple tests. Is it sane?
I tried updating Documentation/filesystems/directory-locking to reflect
the rename change, but without thinking it through as carefully as I'd
like to.
Also, the one thing I *know* is wrong: lockdep doesn't like the rename
change, and I haven't tried to figure out how to fix it. (Help?)
These patches assume some previous lease fixes already committed to
git://linux-nfs.org/~bfields/linux.git for-3.2
--b.
next reply other threads:[~2011-09-21 14:58 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-21 14:58 J. Bruce Fields [this message]
[not found] ` <1316617097-21384-1-git-send-email-bfields-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-09-21 14:58 ` [PATCH 1/6] leases: split up generic_setlease into lock/unlock cases J. Bruce Fields
2011-09-22 17:16 ` Mimi Zohar
[not found] ` <1316711774.3159.52.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2011-09-23 18:57 ` J. Bruce Fields
2011-09-21 14:58 ` [PATCH 5/6] leases: break leases on any attribute modification J. Bruce Fields
2011-09-21 15:35 ` J. Bruce Fields
2011-09-21 14:58 ` [PATCH 2/6] leases: fix write-open/read-lease race J. Bruce Fields
2011-09-21 15:01 ` J. Bruce Fields
2011-09-22 17:17 ` Mimi Zohar
[not found] ` <1316617097-21384-3-git-send-email-bfields-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-10-10 21:59 ` J. Bruce Fields
2011-10-11 6:19 ` Need information about the net ads user command Pankaj Baranwal
[not found] ` <20111010215911.GC17936-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2011-10-28 8:46 ` [PATCH 2/6] leases: fix write-open/read-lease race J. Bruce Fields
2011-09-21 14:58 ` [PATCH 3/6] leases: break read leases on unlink J. Bruce Fields
[not found] ` <1316617097-21384-4-git-send-email-bfields-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-09-21 15:02 ` Christoph Hellwig
[not found] ` <20110921150241.GA11452-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2011-09-21 17:41 ` J. Bruce Fields
2011-09-21 14:58 ` [PATCH 4/6] leases: break read leases on rename J. Bruce Fields
[not found] ` <1316617097-21384-5-git-send-email-bfields-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-09-22 17:17 ` Mimi Zohar
2011-09-23 16:55 ` J. Bruce Fields
[not found] ` <20110923165510.GA807-spRCxval1Z7TsXDwO4sDpg@public.gmane.org>
2011-09-23 18:55 ` J. Bruce Fields
2011-09-23 19:58 ` Mimi Zohar
2011-09-23 20:13 ` J. Bruce Fields
2011-09-21 14:58 ` [PATCH 6/6] leases: break read leases on link J. Bruce Fields
2011-09-24 18:36 ` breaking leases on metadata changes Stefan (metze) Metzmacher
2011-09-26 14:10 ` J. Bruce Fields
2011-09-26 16:16 ` J. Bruce Fields
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=1316617097-21384-1-git-send-email-bfields@redhat.com \
--to=bfields@redhat.com \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=samba-technical@lists.samba.org \
--cc=viro@zeniv.linux.org.uk \
--cc=zohar@linux.vnet.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).