diff options
| author | Christian Brauner <brauner@kernel.org> | 2026-09-11 14:58:39 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-09-11 15:00:37 +0200 |
| commit | 86cfbad9d7b3d2f6546dd3452aaade8022ac63ec (patch) | |
| tree | 5924676c17ec4532e24851fd3d65ff26240c6868 /kernel | |
| parent | 34a496d638705dc227cc6dd2aaaa9e450893502f (diff) | |
| download | linux-next-86cfbad9d7b3d2f6546dd3452aaade8022ac63ec.tar.gz linux-next-86cfbad9d7b3d2f6546dd3452aaade8022ac63ec.zip | |
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: f6f1a2496ba5 ("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>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/tests/user_ns_map_kunit.c | 6 | ||||
| -rw-r--r-- | kernel/user_namespace.c | 19 |
2 files changed, 13 insertions, 12 deletions
diff --git a/kernel/tests/user_ns_map_kunit.c b/kernel/tests/user_ns_map_kunit.c index 24c21e43a36c..033dccc6a535 100644 --- a/kernel/tests/user_ns_map_kunit.c +++ b/kernel/tests/user_ns_map_kunit.c @@ -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); diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c index f9cbb4b92b48..98b0279b6cc6 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -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; |
