Re: [PATCH 3.18 15/19] move d_rcu from overlapping d_child to overlapping d_alias

From: Al Viro
Date: Mon Dec 15 2014 - 16:33:20 EST

On Mon, Dec 15, 2014 at 10:46:50AM -0500, Josh Boyer wrote:
> On Sun, Dec 14, 2014 at 12:21:26PM -0800, Greg Kroah-Hartman wrote:
> >3.18-stable review patch. If anyone has any objections, please let me know.
> >
> >------------------
> >
> >From: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> >
> >commit 946e51f2bf37f1656916eb75bd0742ba33983c28 upstream.
> >
> >Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> >Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> I noticed you don't have this (and the child commit) queued for 3.17.y.
> The backport wasn't exactly straight-forward because of the d_external
> stuff, but I took a swing at it. After that, the other commit was a
> quick cherry-pick.
> Al, does the below look correct for a backport on top of 3.17.6? It
> builds, but I haven't tested it yet.

- WARN_ON(!hlist_unhashed(&dentry->d_alias));
+ WARN_ON(!hlist_unhashed(&dentry->d_u.d_alias));

in __d_free() is definitely *not* correct - where do you think has __d_free
address come from? Right, dentry->d_u.d_rcu.func... Those checks belong
in dentry_free(), before call_rcu() is called...
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at