Unverified Commit 1a398a23 authored by Christian Brauner's avatar Christian Brauner
Browse files

selftests/empty_mntns: fix statmount_alloc() signature mismatch



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: 32f54f2b ("selftests/filesystems: add tests for empty mount namespaces")
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent a27e4642
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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))
+0 −25
Original line number Diff line number Diff line
@@ -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 */
+4 −4
Original line number Diff line number Diff line
@@ -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);

+1 −1
Original line number Diff line number Diff line
@@ -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);