]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/empty_mntns: fix statmount_alloc() signature mismatch
authorChristian Brauner <brauner@kernel.org>
Mon, 23 Mar 2026 16:00:09 +0000 (17:00 +0100)
committerChristian Brauner <brauner@kernel.org>
Tue, 14 Apr 2026 07:30:48 +0000 (09:30 +0200)
empty_mntns.h includes ../statmount/statmount.h which provides a
4-argument statmount_alloc(mnt_id, mnt_ns_id, mask, flags), but then
redefines its own 3-argument version without the flags parameter. This
causes a build failure due to conflicting types.

Remove the duplicate definition from empty_mntns.h and update all
callers to pass 0 for the flags argument.

Fixes: 32f54f2bbccf ("selftests/filesystems: add tests for empty mount namespaces")
Signed-off-by: Christian Brauner <brauner@kernel.org>
tools/testing/selftests/filesystems/empty_mntns/clone3_empty_mntns_test.c
tools/testing/selftests/filesystems/empty_mntns/empty_mntns.h
tools/testing/selftests/filesystems/empty_mntns/empty_mntns_test.c
tools/testing/selftests/filesystems/empty_mntns/overmount_chroot_test.c

index 130cc1a1b407dc2aa6c72bea95d756b8a16a0dbc..d800f661cb7b5839ee12d70d2eb83bd06dcfb0ff 100644 (file)
@@ -493,7 +493,7 @@ TEST_F(clone3_empty_mntns, mount_properties)
                        sm = statmount_alloc(root_id, 0,
                                             STATMOUNT_MNT_BASIC |
                                             STATMOUNT_MNT_POINT |
-                                            STATMOUNT_FS_TYPE);
+                                            STATMOUNT_FS_TYPE, 0);
                        if (!sm)
                                _exit(4);
 
@@ -607,7 +607,7 @@ TEST_F(clone3_empty_mntns, child_overmount_tmpfs)
                        if (!root_id)
                                _exit(4);
 
-                       sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE);
+                       sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE, 0);
                        if (!sm)
                                _exit(5);
                        if (!(sm->mask & STATMOUNT_FS_TYPE))
@@ -668,7 +668,7 @@ TEST_F(clone3_empty_mntns, child_overmount_tmpfs)
                        if (!root_id)
                                _exit(16);
 
-                       sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE);
+                       sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE, 0);
                        if (!sm)
                                _exit(17);
                        if (!(sm->mask & STATMOUNT_FS_TYPE))
index dfd24c88eec80cfbff5ab0824087b5c76152fc9d..3d9c6b14bbef92346ecb5d6b1f7d2e58cfd7f154 100644 (file)
@@ -22,29 +22,4 @@ static inline ssize_t count_mounts(void)
        return listmount(LSMT_ROOT, 0, 0, list, sizeof(list) / sizeof(list[0]), 0);
 }
 
-static inline struct statmount *statmount_alloc(uint64_t mnt_id,
-                                               uint64_t mnt_ns_id,
-                                               uint64_t mask)
-{
-       size_t bufsize = 1 << 15;
-       struct statmount *buf;
-       int ret;
-
-       for (;;) {
-               buf = malloc(bufsize);
-               if (!buf)
-                       return NULL;
-
-               ret = statmount(mnt_id, mnt_ns_id, 0, mask, buf, bufsize, 0);
-               if (ret == 0)
-                       return buf;
-
-               free(buf);
-               if (errno != EOVERFLOW)
-                       return NULL;
-
-               bufsize <<= 1;
-       }
-}
-
 #endif /* EMPTY_MNTNS_H */
index 733aad83dbbfaf0caf4698dea79ecffed2200b47..43e296b97d84b0d2cf50095ec2e130007b261597 100644 (file)
@@ -283,7 +283,7 @@ TEST_F(empty_mntns, cwd_reset)
                if (root_id != cwd_id)
                        _exit(9);
 
-               sm = statmount_alloc(root_id, 0, STATMOUNT_MNT_ROOT | STATMOUNT_MNT_POINT);
+               sm = statmount_alloc(root_id, 0, STATMOUNT_MNT_ROOT | STATMOUNT_MNT_POINT, 0);
                if (!sm)
                        _exit(10);
 
@@ -320,7 +320,7 @@ TEST_F(empty_mntns, mount_properties)
                        _exit(3);
 
                sm = statmount_alloc(root_id, 0, STATMOUNT_MNT_BASIC | STATMOUNT_MNT_ROOT |
-                                    STATMOUNT_MNT_POINT | STATMOUNT_FS_TYPE);
+                                    STATMOUNT_MNT_POINT | STATMOUNT_FS_TYPE, 0);
                if (!sm)
                        _exit(4);
 
@@ -490,7 +490,7 @@ TEST_F(empty_mntns, overmount_tmpfs)
                        _exit(4);
 
                /* Verify root is nullfs */
-               sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE);
+               sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE, 0);
                if (!sm)
                        _exit(5);
 
@@ -574,7 +574,7 @@ TEST_F(empty_mntns, overmount_tmpfs)
                if (!root_id)
                        _exit(19);
 
-               sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE);
+               sm = statmount_alloc(root_id, 0, STATMOUNT_FS_TYPE, 0);
                if (!sm)
                        _exit(20);
 
index 0b623d0c6bb95841f0559d018447fd1e90bea524..6e21c58258c31baf1a242f89e3b46105a286b910 100644 (file)
@@ -204,7 +204,7 @@ TEST(overmount_chroot)
                /* Verify the root mount is tmpfs */
                sm = statmount_alloc(root_id_after, 0,
                                     STATMOUNT_MNT_BASIC | STATMOUNT_MNT_ROOT |
-                                    STATMOUNT_MNT_POINT | STATMOUNT_FS_TYPE);
+                                    STATMOUNT_MNT_POINT | STATMOUNT_FS_TYPE, 0);
                if (!sm)
                        _exit(21);