XArray: Change xa_for_each iterator
authorMatthew Wilcox <willy@infradead.org>
Mon, 17 Dec 2018 19:45:36 +0000 (14:45 -0500)
committerMatthew Wilcox <willy@infradead.org>
Mon, 7 Jan 2019 02:24:43 +0000 (21:24 -0500)
commit4a31896c5b5a2715ecf4033426aa0a35066d92d6
treeea33358cfa40d96ce92fb8605c7a8639f00cac5f
parent02669b17a433c242a40f01f14b691c9c9d1f8a13
XArray: Change xa_for_each iterator

There were three problems with this API:
1. It took too many arguments; almost all users wanted to iterate over
every element in the array rather than a subset.
2. It required that 'index' be initialised before use, and there's no
realistic way to make GCC catch that.
3. 'index' and 'entry' were the opposite way round from every other
member of the XArray APIs.

So split it into three different APIs:

xa_for_each(xa, index, entry)
xa_for_each_start(xa, index, entry, start)
xa_for_each_marked(xa, index, entry, filter)

Signed-off-by: Matthew Wilcox <willy@infradead.org>
include/linux/xarray.h
lib/test_xarray.c