Hi, On 1/12/21 2:01 PM, Christian Brauner wrote: > --- > /* v2 */ > patch introduced > > /* v3 */ > - Christoph Hellwig <hch@xxxxxx>, Darrick J. Wong <darrick.wong@xxxxxxxxxx>: > - Port main test-suite to xfstests. > > /* v4 */ > unchanged > > /* v5 */ > base-commit: 7c53f6b671f4aba70ff15e1b05148b10d58c2837 > --- > .../mount_setattr/mount_setattr_test.c | 483 ++++++++++++++++++ > 1 file changed, 483 insertions(+) > > diff --git a/tools/testing/selftests/mount_setattr/mount_setattr_test.c b/tools/testing/selftests/mount_setattr/mount_setattr_test.c > index 447b91c05cbd..4e94e566e040 100644 > --- a/tools/testing/selftests/mount_setattr/mount_setattr_test.c > +++ b/tools/testing/selftests/mount_setattr/mount_setattr_test.c > @@ -108,15 +108,57 @@ struct mount_attr { > __u64 attr_set; > __u64 attr_clr; > __u64 propagation; > + __u64 userns_fd; > }; > #endif ... Does "/**" have any special meaning inside tools/testing/ and the selftest framework? (I don't see any other such users.) If not, can you just use the usual "/*" instead? (multiple locations) > +/** > + * Validate that negative fd values are rejected. > + */ > +TEST_F(mount_setattr_idmapped, invalid_fd_negative) > +{ ... > +} > + > +/** > + * Validate that excessively large fd values are rejected. > + */ > +TEST_F(mount_setattr_idmapped, invalid_fd_large) > +{ ... > +} > + > +/** > + * Validate that closed fd values are rejected. > + */ > +TEST_F(mount_setattr_idmapped, invalid_fd_closed) > +{ ... > + } > +} > + > +/** > + * Validate that the initial user namespace is rejected. > + */ > +TEST_F(mount_setattr_idmapped, invalid_fd_initial_userns) > +{ ... > +/** > + * Validate that an attached mount in our mount namespace can be idmapped. > + * (The kernel enforces that the mount's mount namespace and the caller's mount > + * namespace match.) > + */ > +TEST_F(mount_setattr_idmapped, attached_mount_inside_current_mount_namespace) > +{ > +} > + > +/** > + * Validate that idmapping a mount is rejected if the mount's mount namespace > + * and our mount namespace don't match. > + * (The kernel enforces that the mount's mount namespace and the caller's mount > + * namespace match.) > + */ > +TEST_F(mount_setattr_idmapped, attached_mount_outside_current_mount_namespace) > +{ ... > +} > + > +/** > + * Validate that an attached mount in our mount namespace can be idmapped. > + */ > +TEST_F(mount_setattr_idmapped, detached_mount_inside_current_mount_namespace) > +{ ... > +} > + > +/** > + * Validate that a detached mount not in our mount namespace can be idmapped. > + */ > +TEST_F(mount_setattr_idmapped, detached_mount_outside_current_mount_namespace) > +{ ... > +} > + > +/** > + * Validate that currently changing the idmapping of an idmapped mount fails. > + */ > +TEST_F(mount_setattr_idmapped, change_idmapping) > +{ thanks. -- ~Randy You can't do anything without having to do something else first. -- Belefant's Law