diff options
author | Konstantin Khlebnikov <khlebnikov@openvz.org> | 2012-03-28 14:42:54 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 17:14:37 -0700 |
commit | 0fc9d1040313047edf6a39fd4d7c7defdca97c62 (patch) | |
tree | 4503c084da1097e1cf66d8bac1ec548bc69ce69a /tools | |
parent | cebbd29e1c2f7a969919f19f74583070840163d7 (diff) | |
download | op-kernel-dev-0fc9d1040313047edf6a39fd4d7c7defdca97c62.zip op-kernel-dev-0fc9d1040313047edf6a39fd4d7c7defdca97c62.tar.gz |
radix-tree: use iterators in find_get_pages* functions
Replace radix_tree_gang_lookup_slot() and
radix_tree_gang_lookup_tag_slot() in page-cache lookup functions with
brand-new radix-tree direct iterating. This avoids the double-scanning
and pointer copying.
Iterator don't stop after nr_pages page-get fails in a row, it continue
lookup till the radix-tree end. Thus we can safely remove these restart
conditions.
Unfortunately, old implementation didn't forbid nr_pages == 0, this corner
case does not fit into new code, so the patch adds an extra check at the
beginning.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Tested-by: Hugh Dickins <hughd@google.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions