mirror of
https://github.com/torvalds/linux.git
synced 2026-10-22 23:01:49 +02:00
userns: rename insert_extent() and sort_idmaps()
The KUnit test suite turned insert_extent() and sort_idmaps() into global
symbols and declared them in include/linux/user_namespace.h. That header
is pulled in nearly everywhere through linux/cgroup.h and the btrfs
self-tests carry a static insert_extent() of their own, so any config
with both test suites enabled fails to build:
fs/btrfs/tests/inode-tests.c:16:13: error: conflicting types for 'insert_extent'
include/linux/user_namespace.h:212:12: note: previous declaration of 'insert_extent'
A global symbol needs a prefix. Rename them to
uid_gid_map_insert_extent() and uid_gid_map_sort(). It's the better name
anyway.
No functional changes.
Fixes: f6f1a2496b ("userns: Add KUnit test suite for uid_gid_map")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202609110843.okbPe7GM-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202609110937.zHKPPXJk-lkp@intel.com/
Link: https://patch.msgid.link/20260911-suggerieren-suchaktion-fliehen-87b9cdf1d169@brauner
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
This commit is contained in:
parent
34a496d638
commit
86cfbad9d7
|
|
@ -209,8 +209,9 @@ extern bool current_in_userns(const struct user_namespace *target_ns);
|
|||
struct ns_common *ns_get_owner(struct ns_common *ns);
|
||||
|
||||
#if IS_ENABLED(CONFIG_USER_NS_MAP_KUNIT_TEST)
|
||||
extern int insert_extent(struct uid_gid_map *map, struct uid_gid_extent *extent);
|
||||
extern int sort_idmaps(struct uid_gid_map *map);
|
||||
extern int uid_gid_map_insert_extent(struct uid_gid_map *map,
|
||||
struct uid_gid_extent *extent);
|
||||
extern int uid_gid_map_sort(struct uid_gid_map *map);
|
||||
#endif /* CONFIG_USER_NS_MAP_KUNIT_TEST */
|
||||
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ static void user_ns_map_insert(struct kunit *test)
|
|||
extent.lower_first = i * 100;
|
||||
extent.count = 5;
|
||||
|
||||
ret = insert_extent(&map, &extent);
|
||||
ret = uid_gid_map_insert_extent(&map, &extent);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
}
|
||||
|
||||
|
|
@ -54,14 +54,14 @@ static void user_ns_map_insert_extended(struct kunit *test)
|
|||
extent.lower_first = value * 100;
|
||||
extent.count = 5;
|
||||
|
||||
ret = insert_extent(&map, &extent);
|
||||
ret = uid_gid_map_insert_extent(&map, &extent);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
}
|
||||
|
||||
KUNIT_EXPECT_EQ(test, map.nr_extents, NR_EXTENTS);
|
||||
|
||||
/* Now sort the map to set up reverse mapping */
|
||||
ret = sort_idmaps(&map);
|
||||
ret = uid_gid_map_sort(&map);
|
||||
KUNIT_ASSERT_EQ(test, ret, 0);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, map.reverse);
|
||||
|
||||
|
|
|
|||
|
|
@ -780,12 +780,13 @@ static bool mappings_overlap(struct uid_gid_map *new_map,
|
|||
}
|
||||
|
||||
/*
|
||||
* insert_extent - Safely insert a new idmap extent into struct uid_gid_map.
|
||||
* uid_gid_map_insert_extent - Safely insert a new idmap extent into
|
||||
* struct uid_gid_map.
|
||||
* Takes care to allocate a 4K block of memory if the number of mappings exceeds
|
||||
* UID_GID_MAP_MAX_BASE_EXTENTS.
|
||||
*/
|
||||
VISIBLE_IF_KUNIT int insert_extent(struct uid_gid_map *map,
|
||||
struct uid_gid_extent *extent)
|
||||
VISIBLE_IF_KUNIT int uid_gid_map_insert_extent(struct uid_gid_map *map,
|
||||
struct uid_gid_extent *extent)
|
||||
{
|
||||
struct uid_gid_extent *dest;
|
||||
|
||||
|
|
@ -821,7 +822,7 @@ VISIBLE_IF_KUNIT int insert_extent(struct uid_gid_map *map,
|
|||
*dest = *extent;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_IF_KUNIT(insert_extent);
|
||||
EXPORT_SYMBOL_IF_KUNIT(uid_gid_map_insert_extent);
|
||||
|
||||
/* cmp function to sort() forward mappings */
|
||||
static int cmp_extents_forward(const void *a, const void *b)
|
||||
|
|
@ -854,10 +855,10 @@ static int cmp_extents_reverse(const void *a, const void *b)
|
|||
}
|
||||
|
||||
/*
|
||||
* sort_idmaps - Sorts an array of idmap entries.
|
||||
* uid_gid_map_sort - Sorts an array of idmap entries.
|
||||
* Can only be called if number of mappings exceeds UID_GID_MAP_MAX_BASE_EXTENTS.
|
||||
*/
|
||||
VISIBLE_IF_KUNIT int sort_idmaps(struct uid_gid_map *map)
|
||||
VISIBLE_IF_KUNIT int uid_gid_map_sort(struct uid_gid_map *map)
|
||||
{
|
||||
if (map->nr_extents <= UID_GID_MAP_MAX_BASE_EXTENTS)
|
||||
return 0;
|
||||
|
|
@ -878,7 +879,7 @@ VISIBLE_IF_KUNIT int sort_idmaps(struct uid_gid_map *map)
|
|||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_IF_KUNIT(sort_idmaps);
|
||||
EXPORT_SYMBOL_IF_KUNIT(uid_gid_map_sort);
|
||||
|
||||
/**
|
||||
* verify_root_map() - check the uid 0 mapping
|
||||
|
|
@ -1047,7 +1048,7 @@ static ssize_t map_write(struct file *file, const char __user *buf,
|
|||
(next_line != NULL))
|
||||
goto out;
|
||||
|
||||
ret = insert_extent(&new_map, &extent);
|
||||
ret = uid_gid_map_insert_extent(&new_map, &extent);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
ret = -EINVAL;
|
||||
|
|
@ -1091,7 +1092,7 @@ static ssize_t map_write(struct file *file, const char __user *buf,
|
|||
* If we want to use binary search for lookup, this clones the extent
|
||||
* array and sorts both copies.
|
||||
*/
|
||||
ret = sort_idmaps(&new_map);
|
||||
ret = uid_gid_map_sort(&new_map);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user