Re: [PATCH] maple_tree: export symbol mas_preallocate()

From: Danilo Krummrich
Date: Wed Mar 08 2023 - 10:20:11 EST


On 3/8/23 15:43, Christoph Hellwig wrote:
On Wed, Mar 08, 2023 at 03:34:29PM +0100, Danilo Krummrich wrote:
On 3/8/23 11:59, Vlastimil Babka wrote:
On 3/2/23 02:52, Liam R. Howlett wrote:
Thanks for the patch. This should indeed be exported.

Reviewed-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx>

What uses it? Don't we export only things used by in-kernel modules?

mas_preallocate() is part of the maple tree's 'Advanced API'. All other
functions of this API are exported already.

More specifically, e.g. mas_store_prealloc() is exported which doesn't make
a lot of sense without mas_preallocate() being available too.

I don't think it is used outside of mm yet, but as a generic tree
implementation maple tree is pretty likely to be used in code built as
module, e.g. drivers.

If anyone wants to use they can add the export as needed.


Valid perception, though personally I wouldn't share it in this specific case.

Anyway, it's just that all other functions of the 'Advanced API' are exported already without them having other users than mm either, e.g. mas_store_prealloc() can't be used without mas_preallocate(), hence exporting one, but not the other doesn't really make sense.

Consistency wise I think we should either also export mas_preallocate() or don't export the other ones either.