Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1437213
| From | Al Viro <viro@ZenIV.linux.org.uk> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. |
| Date | 2016-07-05 19:50 +0200 |
| Message-ID | <rRCDU-5Ws-13@gated-at.bofh.it> (permalink) |
| References | (3 earlier) <rQJep-5my-5@gated-at.bofh.it> <rRs1P-7yT-11@gated-at.bofh.it> <rRxNU-2Nz-31@gated-at.bofh.it> <rRz3k-3vi-19@gated-at.bofh.it> <rRAsp-4Ci-15@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, Jul 05, 2016 at 11:21:32AM -0400, Oleg Drokin wrote:
> > ...
> > - if (d_unhashed(*de)) {
> > + if (d_in_lookup(*de)) {
> > struct dentry *alias;
> >
> > alias = ll_splice_alias(inode, *de);
>
> This breaks Lustre because we now might progress further in this function
> without calling into ll_splice_alias and that's the only place that we do
> ll_d_init() that later code depends on so we violently crash next time
> we call e.g. d_lustre_revalidate() further down that code.
Huh? How the hell do those conditions differ there?
> Also I still wonder what's to stop d_alloc_parallel() from returning
> a hashed dentry with d_in_lookup() still true?
The fact that such dentries do not exist at any point?
> Certainly there's a big gap between hashing the dentry and dropping the PAR
> bit in there that I imagine might allow __d_lookup_rcu() to pick it up
> in between?--
WTF? Where do you see that gap? in-lookup dentries get hashed only in one
place - __d_add(). And there (besides holding ->d_lock around both) we
drop that bit in flags *before* _d_rehash(). AFAICS, the situation with
barriers is OK there, due to lockref_get_not_dead() serving as ACQUIRE
operation; I could be missing something subtle, but a wide gap... Where?
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-06-25 18:40 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-03 08:40 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-04 02:10 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-04 02:40 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-04 05:10 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-04 06:00 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-05 04:30 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 04:30 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 04:40 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 06:50 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 08:30 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-05 14:40 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-05 16:00 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 17:30 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-05 19:50 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 20:20 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 18:40 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-05 20:10 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 21:20 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-05 22:10 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-05 22:30 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-06 02:30 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Al Viro <viro@ZenIV.linux.org.uk> - 2016-07-06 05:30 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-06 06:10 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-06 06:40 +0200
Re: More parallel atomic_open/d_splice_alias fun with NFS and possibly more FSes. Oleg Drokin <green@linuxhacker.ru> - 2016-07-06 18:30 +0200
csiph-web