Message ID | 20240326-mount-setattr-test-v1-2-c061b040d0f7@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Patches to update xfs test "generic/645" for mount_setattr | expand |
On Tue, Mar 26, 2024 at 08:33:52PM +0000, Taylor Jackson via B4 Relay wrote: > From: Taylor Jackson <tjackson9431@gmail.com> > > In kernel commit dacfd001eaf2 (“fs/mnt_idmapping.c: Return -EINVAL > when no map is written”), the behavior of mount_setattr changed to > return EINVAL when attempting to create an idmapped mount when using > a user namespace with no mappings. The following commit updates the test > to expect no mount to be created in that case. And since no mount is created, > this commit also removes the check for overflow IDs because it does not make > sense to check for overflow IDs for a mount that was not created. > > Signed-off-by: Taylor Jackson <tjackson9431@gmail.com> > --- Thanks for fixing it! Reviewed-by: Zorro Lang <zlang@redhat.com> > src/vfs/idmapped-mounts.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/src/vfs/idmapped-mounts.c b/src/vfs/idmapped-mounts.c > index 34052ca3..f4dfc3f3 100644 > --- a/src/vfs/idmapped-mounts.c > +++ b/src/vfs/idmapped-mounts.c > @@ -6667,7 +6667,7 @@ static int nested_userns(const struct vfstest_info *info) > } > > if (sys_mount_setattr(fd_open_tree_level4, "", AT_EMPTY_PATH, > - &attr_level4, sizeof(attr_level4))) { > + &attr_level4, sizeof(attr_level4)) != -1 || errno != EINVAL) { > log_stderr("failure: sys_mount_setattr"); > goto out; > } > @@ -6706,11 +6706,6 @@ static int nested_userns(const struct vfstest_info *info) > log_stderr("failure: check ownership %s", file); > goto out; > } > - > - if (!expected_uid_gid(fd_open_tree_level4, file, 0, info->t_overflowuid, info->t_overflowgid)) { > - log_stderr("failure: check ownership %s", file); > - goto out; > - } > } > > /* Verify that ownership looks correct for callers in the first userns. */ > > -- > 2.34.1 > > >
On Tue, Mar 26, 2024 at 08:33:52PM +0000, Taylor Jackson via B4 Relay wrote: > From: Taylor Jackson <tjackson9431@gmail.com> > > In kernel commit dacfd001eaf2 (“fs/mnt_idmapping.c: Return -EINVAL > when no map is written”), the behavior of mount_setattr changed to > return EINVAL when attempting to create an idmapped mount when using > a user namespace with no mappings. The following commit updates the test > to expect no mount to be created in that case. And since no mount is created, > this commit also removes the check for overflow IDs because it does not make > sense to check for overflow IDs for a mount that was not created. > > Signed-off-by: Taylor Jackson <tjackson9431@gmail.com> > --- > src/vfs/idmapped-mounts.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/src/vfs/idmapped-mounts.c b/src/vfs/idmapped-mounts.c > index 34052ca3..f4dfc3f3 100644 > --- a/src/vfs/idmapped-mounts.c > +++ b/src/vfs/idmapped-mounts.c > @@ -6667,7 +6667,7 @@ static int nested_userns(const struct vfstest_info *info) > } > > if (sys_mount_setattr(fd_open_tree_level4, "", AT_EMPTY_PATH, > - &attr_level4, sizeof(attr_level4))) { > + &attr_level4, sizeof(attr_level4)) != -1 || errno != EINVAL) { Hi Taylor, This patch has been merged, but I found it causes g/645 fail on old kernel[1]. Is it expected? If it's an expected failure on kernel without dacfd001eaf2 (“fs/mnt_idmapping.c: Return -EINVAL when no map is written”), we'd better to add this commit to generic/645 as a hint, to avoid others feel they hit a regression. Thanks, Zorro [1] FSTYP -- xfs (non-debug) PLATFORM -- Linux/x86_64 sheep-3 5.14.0-xxx.el9 #1 SMP PREEMPT_DYNAMIC Fri Apr 5 12:21:04 EDT 2024 MKFS_OPTIONS -- -f -m crc=1,finobt=1,reflink=1,rmapbt=0,bigtime=1,inobtcount=1 /dev/vda3 MOUNT_OPTIONS -- -o context=system_u:object_r:root_t:s0 /dev/vda3 /mnt/xfstests/scratch generic/645 [failed, exit status 1]- output mismatch (see /var/lib/xfstests/results//generic/645.out.bad) --- tests/generic/645.out 2024-04-08 07:27:51.432955372 +0200 +++ /var/lib/xfstests/results//generic/645.out.bad 2024-04-08 07:31:49.811581285 +0200 @@ -1,2 +1,4 @@ QA output created by 645 Silence is golden +idmapped-mounts.c: 6671: nested_userns - Success - failure: sys_mount_setattr +vfstest.c: 2418: run_test - Success - failure: test that nested user namespaces behave correctly when attached to idmapped mounts ... (Run 'diff -u /var/lib/xfstests/tests/generic/645.out /var/lib/xfstests/results//generic/645.out.bad' to see the entire diff) Ran: generic/645 Failures: generic/645 Failed 1 of 1 tests > log_stderr("failure: sys_mount_setattr"); > goto out; > } > @@ -6706,11 +6706,6 @@ static int nested_userns(const struct vfstest_info *info) > log_stderr("failure: check ownership %s", file); > goto out; > } > - > - if (!expected_uid_gid(fd_open_tree_level4, file, 0, info->t_overflowuid, info->t_overflowgid)) { > - log_stderr("failure: check ownership %s", file); > - goto out; > - } > } > > /* Verify that ownership looks correct for callers in the first userns. */ > > -- > 2.34.1 > > >
diff --git a/src/vfs/idmapped-mounts.c b/src/vfs/idmapped-mounts.c index 34052ca3..f4dfc3f3 100644 --- a/src/vfs/idmapped-mounts.c +++ b/src/vfs/idmapped-mounts.c @@ -6667,7 +6667,7 @@ static int nested_userns(const struct vfstest_info *info) } if (sys_mount_setattr(fd_open_tree_level4, "", AT_EMPTY_PATH, - &attr_level4, sizeof(attr_level4))) { + &attr_level4, sizeof(attr_level4)) != -1 || errno != EINVAL) { log_stderr("failure: sys_mount_setattr"); goto out; } @@ -6706,11 +6706,6 @@ static int nested_userns(const struct vfstest_info *info) log_stderr("failure: check ownership %s", file); goto out; } - - if (!expected_uid_gid(fd_open_tree_level4, file, 0, info->t_overflowuid, info->t_overflowgid)) { - log_stderr("failure: check ownership %s", file); - goto out; - } } /* Verify that ownership looks correct for callers in the first userns. */