Files
kernel_amazon_mt8127-common/include/linux
Matthew Wilcox a202017766 radix-tree: fix race in gang lookup
commit 46437f9a554fbe3e110580ca08ab703b59f2f95a upstream.

If the indirect_ptr bit is set on a slot, that indicates we need to redo
the lookup.  Introduce a new function radix_tree_iter_retry() which
forces the loop to retry the lookup by setting 'slot' to NULL and
turning the iterator back to point at the problematic entry.

This is a pretty rare problem to hit at the moment; the lookup has to
race with a grow of the radix tree from a height of 0.  The consequences
of hitting this race are that gang lookup could return a pointer to a
radix_tree_node instead of a pointer to whatever the user had inserted
in the tree.

Fixes: cebbd29e1c ("radix-tree: rewrite gang lookup using iterator")
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-02-25 11:57:49 -08:00
..
2013-05-17 14:31:05 -04:00
2015-04-29 10:33:54 +02:00
2013-12-04 10:56:22 -08:00
2013-12-08 07:29:27 -08:00
2014-10-30 09:35:12 -07:00
2013-07-28 16:30:11 -07:00
2015-07-03 19:48:08 -07:00
2013-10-13 16:08:28 -07:00
2014-04-03 12:01:05 -07:00
2014-06-26 15:12:38 -04:00
2013-07-28 16:30:05 -07:00
2015-08-03 09:29:45 -07:00
2013-10-13 16:08:35 -07:00
2015-04-29 10:34:00 +02:00
2013-07-21 18:21:29 -07:00
2014-01-15 15:28:47 -08:00
2014-02-13 13:47:59 -08:00
2013-07-28 16:29:55 -07:00