d_walk() might skip too much
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 29 May 2015 03:09:19 +0000 (23:09 -0400)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 6 Aug 2015 23:32:13 +0000 (00:32 +0100)
commit60593faea74ea54e84cb638f9cc59e32d8268f37
tree4e41dcc156c1d3b334df27459ea1ddfb26c1bcd8
parenta5045e0fee1a7b2cf132afb94977d4c8d781bd04
d_walk() might skip too much

commit 2159184ea01e4ae7d15f2017e296d4bc82d5aeb0 upstream.

when we find that a child has died while we'd been trying to ascend,
we should go into the first live sibling itself, rather than its sibling.

Off-by-one in question had been introduced in "deal with deadlock in
d_walk()" and the fix needs to be backported to all branches this one
has been backported to.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
[bwh: Backported to 3.2: apply to the 3 copies of this logic we
 ended up with]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/dcache.c