From: Linus Torvalds <torvalds@linux-foundation.org>
To: Al Viro <viro@zeniv.linux.org.uk>
Cc: Dave Chinner <david@fromorbit.com>,
Miklos Szeredi <miklos@szeredi.hu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: dcache shrink list corruption?
Date: Tue, 29 Apr 2014 16:04:11 -0700 [thread overview]
Message-ID: <CA+55aFwcWcyRpwv3us9BbnsjUEfEr1mRjz4RWbcy_tSnZjc_Sw@mail.gmail.com> (raw)
In-Reply-To: <20140429214842.GL18016@ZenIV.linux.org.uk>
On Tue, Apr 29, 2014 at 2:48 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> Ummm... You mean, have d_lookup() et.al. fail on something that is on
> a shrink list?
So I tried to see if that would work just consider it dead by the time
it hits the shrink list, and if somebody does a lookup on the dentry,
fail on it and just allocate a new dentry and do a real lookup.
But at a minimum, we have "d_op->d_prune()" that would now be possibly
be called for the old dentry *after* a new dentry has been allocated.
Not to mention the inode not having been dropped. So it looks like a
disaster where the filesystem now ends up having concurrent "live"
dentries for the same entry. Even if one of them is on its way out,
it's still visible to the filesystem. That makes me very
uncomfortable.
I'm starting to think that Miklos' original patch (perhaps with the
spinlock split to at least be one per superblock) is the most
straightforward approach after all. It's annoying having to add locks
here, but the whole pruning path should not be a hotpath, so maybe
it's not actually a big deal.
Linus
next prev parent reply other threads:[~2014-04-29 23:04 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-29 16:01 dcache shrink list corruption? Miklos Szeredi
2014-04-29 17:43 ` Linus Torvalds
2014-04-29 18:03 ` Miklos Szeredi
2014-04-29 18:16 ` Al Viro
2014-04-29 19:10 ` Al Viro
2014-04-29 21:18 ` Dave Chinner
2014-04-29 21:48 ` Al Viro
2014-04-29 23:04 ` Linus Torvalds [this message]
2014-04-29 23:20 ` Al Viro
2014-04-30 2:31 ` Al Viro
2014-04-30 2:56 ` Linus Torvalds
2014-04-30 4:04 ` Al Viro
2014-04-30 15:49 ` Miklos Szeredi
2014-04-30 15:56 ` Miklos Szeredi
2014-04-30 16:03 ` Al Viro
2014-04-30 17:33 ` Miklos Szeredi
2014-04-30 18:36 ` Al Viro
2014-04-30 18:42 ` Miklos Szeredi
2014-04-30 19:02 ` Al Viro
2014-04-30 19:59 ` Al Viro
2014-04-30 20:23 ` Linus Torvalds
2014-04-30 20:38 ` Al Viro
2014-04-30 20:57 ` Linus Torvalds
2014-04-30 21:12 ` Al Viro
2014-04-30 22:12 ` Al Viro
2014-04-30 23:04 ` Linus Torvalds
2014-04-30 23:14 ` Linus Torvalds
2014-04-30 23:43 ` Al Viro
2014-05-01 0:18 ` Linus Torvalds
2014-05-01 2:51 ` Al Viro
2014-05-01 2:59 ` Linus Torvalds
2014-05-01 3:12 ` Al Viro
2014-05-01 9:42 ` Miklos Szeredi
2014-05-01 14:34 ` Al Viro
2014-05-01 21:02 ` Al Viro
2014-05-01 21:05 ` Al Viro
2014-05-01 22:52 ` Linus Torvalds
2014-05-02 8:43 ` Szeredi Miklos
2014-05-02 21:04 ` Linus Torvalds
2014-04-30 23:38 ` Al Viro
2014-04-30 9:15 ` Miklos Szeredi
2014-05-02 5:51 ` Al Viro
2014-05-02 9:00 ` Szeredi Miklos
2014-05-02 21:02 ` Miklos Szeredi
2014-05-02 21:08 ` Miklos Szeredi
2014-05-02 21:18 ` Linus Torvalds
2014-05-02 22:40 ` Al Viro
2014-05-02 23:06 ` Al Viro
2014-05-03 4:26 ` Al Viro
2014-05-03 18:07 ` Linus Torvalds
2014-05-03 18:25 ` Al Viro
2014-05-03 18:21 ` Al Viro
2014-05-04 6:29 ` Al Viro
2014-05-06 10:17 ` Miklos Szeredi
2014-05-06 14:53 ` Linus Torvalds
2014-05-06 16:52 ` Al Viro
2014-05-06 17:01 ` Linus Torvalds
2014-05-06 19:15 ` Al Viro
2014-05-02 22:32 ` Al Viro
2014-04-29 18:17 ` Linus Torvalds
2014-04-29 17:56 ` Al Viro
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=CA+55aFwcWcyRpwv3us9BbnsjUEfEr1mRjz4RWbcy_tSnZjc_Sw@mail.gmail.com \
--to=torvalds@linux-foundation.org \
--cc=david@fromorbit.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=viro@zeniv.linux.org.uk \
/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).