summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-10-27 02:31:10 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-04-29 11:34:00 +0300
commit5f03ac13d87590b0ee879c77e68df63a3d9b3e07 (patch)
tree9985fd0b9bccdd3e484727ec521573f2833d08e5 /block
parent6637ecd306a94a03dd5b8e4e8d3f260d9877c5b0 (diff)
downloadlinux-5f03ac13d87590b0ee879c77e68df63a3d9b3e07.tar.xz
deal with deadlock in d_walk()
commit ca5358ef75fc69fee5322a38a340f5739d997c10 upstream. ... by not hitting rename_retry for reasons other than rename having happened. In other words, do _not_ restart when finding that between unlocking the child and locking the parent the former got into __dentry_kill(). Skip the killed siblings instead... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Cc: Ben Hutchings <ben@decadent.org.uk> [hujianyang: Backported to 3.10 refer to the work of Ben Hutchings in 3.2: - As we only have try_to_ascend() and not d_walk(), apply this change to all callers of try_to_ascend() - Adjust context to make __dentry_kill() apply to d_kill()] Signed-off-by: hujianyang <hujianyang@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions