mbox series

[v9,0/4,REBASED] fstests: add idmapped mounts tests

Message ID 20210316103627.2954121-1-christian.brauner@ubuntu.com (mailing list archive)
Headers show
Series fstests: add idmapped mounts tests | expand

Message

Christian Brauner March 16, 2021, 10:36 a.m. UTC
Hey everyone,

/* v9 */
Rebased onto current master.
Hopefully we can merge this soon so we can have regular testing asap and
the rebasing is getting a bit tedious too. ;)

ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check generic/631
FSTYP         -- xfs (non-debug)
PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch

generic/631 9s ...  11s
Ran: generic/631
Passed all 1 tests

ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check generic/632
FSTYP         -- xfs (non-debug)
PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch

generic/632      15s
Ran: generic/632
Passed all 1 tests

ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check xfs/529
FSTYP         -- xfs (non-debug)
PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch

xfs/529 25s ...  43s
Ran: xfs/529
Passed all 1 tests

ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check xfs/530
FSTYP         -- xfs (non-debug)
PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch

xfs/530  24s
Ran: xfs/530
Passed all 1 tests

/* v8 */
This adds the testsuite for idmapped mounts. It has been expanded quite
a bit too since the last version:
- Add a testcase to verify that detached mounts in the new mount api
  work correctly.
- Add a full testsuite for idmapped mounts.
- Add two quota tests verifying xfs behavior.

Sorry that it took so long to resend this testsuite but I had to chase
and fix a bug in the new mount API (completely independent of idmapped
mounts) before I could add quota tests because they would otherwise run
danger to render the host mount namespace unuseable due to that bug
(cf.  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d3110f256d126b44d34c1f662310cd295877c447)
All tests here pass for me on a kernel with idmapped mounts. The xfs
specific quota tests should go on top of the fixes that Darrick is
currently carrying for 5.12 and which he sent out a little while ago.

Thanks!
Christian

Christian Brauner (4):
  generic/631: add test for detached mount propagation
  generic/632: add fstests for idmapped mounts
  xfs/529: quotas and idmapped mounts
  xfs/530: quotas on idmapped mounts

 .gitignore                            |    3 +
 common/rc                             |   25 +
 configure.ac                          |    2 +
 include/builddefs.in                  |    1 +
 m4/Makefile                           |    1 +
 m4/package_libcap.m4                  |    4 +
 src/Makefile                          |    8 +-
 src/detached_mounts_propagation.c     |  189 +
 src/feature.c                         |   40 +-
 src/idmapped-mounts/Makefile          |   41 +
 src/idmapped-mounts/idmapped-mounts.c | 8627 +++++++++++++++++++++++++
 src/idmapped-mounts/missing.h         |  151 +
 src/idmapped-mounts/mount-idmapped.c  |  428 ++
 src/idmapped-mounts/utils.c           |  134 +
 src/idmapped-mounts/utils.h           |   30 +
 tests/generic/631                     |   41 +
 tests/generic/631.out                 |    2 +
 tests/generic/632                     |   42 +
 tests/generic/632.out                 |    2 +
 tests/generic/group                   |    2 +
 tests/xfs/529                         |  373 ++
 tests/xfs/529.out                     |  657 ++
 tests/xfs/530                         |  274 +
 tests/xfs/530.out                     |  129 +
 tests/xfs/group                       |    2 +
 25 files changed, 11203 insertions(+), 5 deletions(-)
 create mode 100644 m4/package_libcap.m4
 create mode 100644 src/detached_mounts_propagation.c
 create mode 100644 src/idmapped-mounts/Makefile
 create mode 100644 src/idmapped-mounts/idmapped-mounts.c
 create mode 100644 src/idmapped-mounts/missing.h
 create mode 100644 src/idmapped-mounts/mount-idmapped.c
 create mode 100644 src/idmapped-mounts/utils.c
 create mode 100644 src/idmapped-mounts/utils.h
 create mode 100644 tests/generic/631
 create mode 100644 tests/generic/631.out
 create mode 100644 tests/generic/632
 create mode 100644 tests/generic/632.out
 create mode 100644 tests/xfs/529
 create mode 100644 tests/xfs/529.out
 create mode 100644 tests/xfs/530
 create mode 100644 tests/xfs/530.out


base-commit: f6ddaf130d5b0817278afe441fdde52f464f321b

Comments

Christoph Hellwig March 18, 2021, 6:23 a.m. UTC | #1
Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>
Eryu Guan March 21, 2021, 2:26 p.m. UTC | #2
On Tue, Mar 16, 2021 at 11:36:23AM +0100, Christian Brauner wrote:
> Hey everyone,
> 
> /* v9 */
> Rebased onto current master.
> Hopefully we can merge this soon so we can have regular testing asap and
> the rebasing is getting a bit tedious too. ;)

Sorry for the late review.. You don't have to rebase on every release if
updating the test seq number is the only thing changed. Seq number
conflicts all the time, usually I can fix it on commit.

Patch 2 is missing from the list, maybe it's too big to post, could you
please provide a git repo so I can pull from there?

Some minor comments go to specific patch.

Thanks,
Eryu

> 
> ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check generic/631
> FSTYP         -- xfs (non-debug)
> PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
> MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
> MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch
> 
> generic/631 9s ...  11s
> Ran: generic/631
> Passed all 1 tests
> 
> ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check generic/632
> FSTYP         -- xfs (non-debug)
> PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
> MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
> MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch
> 
> generic/632      15s
> Ran: generic/632
> Passed all 1 tests
> 
> ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check xfs/529
> FSTYP         -- xfs (non-debug)
> PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
> MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
> MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch
> 
> xfs/529 25s ...  43s
> Ran: xfs/529
> Passed all 1 tests
> 
> ubuntu@f1-vm:~/src/git/xfstests$ sudo ./check xfs/530
> FSTYP         -- xfs (non-debug)
> PLATFORM      -- Linux/x86_64 f1-vm 5.12.0-rc3-inode-helpers #343 SMP Mon Mar 15 12:57:02 UTC 2021
> MKFS_OPTIONS  -- -f -bsize=4096 /dev/loop1
> MOUNT_OPTIONS -- /dev/loop1 /mnt/scratch
> 
> xfs/530  24s
> Ran: xfs/530
> Passed all 1 tests
> 
> /* v8 */
> This adds the testsuite for idmapped mounts. It has been expanded quite
> a bit too since the last version:
> - Add a testcase to verify that detached mounts in the new mount api
>   work correctly.
> - Add a full testsuite for idmapped mounts.
> - Add two quota tests verifying xfs behavior.
> 
> Sorry that it took so long to resend this testsuite but I had to chase
> and fix a bug in the new mount API (completely independent of idmapped
> mounts) before I could add quota tests because they would otherwise run
> danger to render the host mount namespace unuseable due to that bug
> (cf.  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d3110f256d126b44d34c1f662310cd295877c447)
> All tests here pass for me on a kernel with idmapped mounts. The xfs
> specific quota tests should go on top of the fixes that Darrick is
> currently carrying for 5.12 and which he sent out a little while ago.
> 
> Thanks!
> Christian
> 
> Christian Brauner (4):
>   generic/631: add test for detached mount propagation
>   generic/632: add fstests for idmapped mounts
>   xfs/529: quotas and idmapped mounts
>   xfs/530: quotas on idmapped mounts
> 
>  .gitignore                            |    3 +
>  common/rc                             |   25 +
>  configure.ac                          |    2 +
>  include/builddefs.in                  |    1 +
>  m4/Makefile                           |    1 +
>  m4/package_libcap.m4                  |    4 +
>  src/Makefile                          |    8 +-
>  src/detached_mounts_propagation.c     |  189 +
>  src/feature.c                         |   40 +-
>  src/idmapped-mounts/Makefile          |   41 +
>  src/idmapped-mounts/idmapped-mounts.c | 8627 +++++++++++++++++++++++++
>  src/idmapped-mounts/missing.h         |  151 +
>  src/idmapped-mounts/mount-idmapped.c  |  428 ++
>  src/idmapped-mounts/utils.c           |  134 +
>  src/idmapped-mounts/utils.h           |   30 +
>  tests/generic/631                     |   41 +
>  tests/generic/631.out                 |    2 +
>  tests/generic/632                     |   42 +
>  tests/generic/632.out                 |    2 +
>  tests/generic/group                   |    2 +
>  tests/xfs/529                         |  373 ++
>  tests/xfs/529.out                     |  657 ++
>  tests/xfs/530                         |  274 +
>  tests/xfs/530.out                     |  129 +
>  tests/xfs/group                       |    2 +
>  25 files changed, 11203 insertions(+), 5 deletions(-)
>  create mode 100644 m4/package_libcap.m4
>  create mode 100644 src/detached_mounts_propagation.c
>  create mode 100644 src/idmapped-mounts/Makefile
>  create mode 100644 src/idmapped-mounts/idmapped-mounts.c
>  create mode 100644 src/idmapped-mounts/missing.h
>  create mode 100644 src/idmapped-mounts/mount-idmapped.c
>  create mode 100644 src/idmapped-mounts/utils.c
>  create mode 100644 src/idmapped-mounts/utils.h
>  create mode 100644 tests/generic/631
>  create mode 100644 tests/generic/631.out
>  create mode 100644 tests/generic/632
>  create mode 100644 tests/generic/632.out
>  create mode 100644 tests/xfs/529
>  create mode 100644 tests/xfs/529.out
>  create mode 100644 tests/xfs/530
>  create mode 100644 tests/xfs/530.out
> 
> 
> base-commit: f6ddaf130d5b0817278afe441fdde52f464f321b
> -- 
> 2.27.0
Christian Brauner March 21, 2021, 3:32 p.m. UTC | #3
On Sun, Mar 21, 2021 at 10:26:35PM +0800, Eryu Guan wrote:
> On Tue, Mar 16, 2021 at 11:36:23AM +0100, Christian Brauner wrote:
> > Hey everyone,
> > 
> > /* v9 */
> > Rebased onto current master.
> > Hopefully we can merge this soon so we can have regular testing asap and
> > the rebasing is getting a bit tedious too. ;)
> 
> Sorry for the late review.. You don't have to rebase on every release if
> updating the test seq number is the only thing changed. Seq number
> conflicts all the time, usually I can fix it on commit.
> 
> Patch 2 is missing from the list, maybe it's too big to post, could you

_Sigh_, this seems like another vger issue. The individual Ccs/Tos
should've all gotten the patch but it's missing from the list. This is a
pattern I've seen quite a few times recently with vger. There's nothing
to do apart from complain about it to the vger maintainer. :)

> please provide a git repo so I can pull from there?

For sure. It's available in three locations:
https://git.kernel.org/pub/scm/linux/kernel/git/brauner/xfstests-dev.git/log/?h=idmapped_mounts_v2
https://gitlab.com/brauner/xfstests/-/tree/idmapped_mounts_v2
https://github.com/brauner/xfstests/tree/idmapped_mounts_v2

(Are you fixing the things you pointed out in the individual patches
yourself or should I resend a new version?)

Thanks!
Christian
Eryu Guan March 22, 2021, 2:37 a.m. UTC | #4
On Sun, Mar 21, 2021 at 04:32:00PM +0100, Christian Brauner wrote:
> On Sun, Mar 21, 2021 at 10:26:35PM +0800, Eryu Guan wrote:
> > On Tue, Mar 16, 2021 at 11:36:23AM +0100, Christian Brauner wrote:
> > > Hey everyone,
> > > 
> > > /* v9 */
> > > Rebased onto current master.
> > > Hopefully we can merge this soon so we can have regular testing asap and
> > > the rebasing is getting a bit tedious too. ;)
> > 
> > Sorry for the late review.. You don't have to rebase on every release if
> > updating the test seq number is the only thing changed. Seq number
> > conflicts all the time, usually I can fix it on commit.
> > 
> > Patch 2 is missing from the list, maybe it's too big to post, could you
> 
> _Sigh_, this seems like another vger issue. The individual Ccs/Tos
> should've all gotten the patch but it's missing from the list. This is a
> pattern I've seen quite a few times recently with vger. There's nothing
> to do apart from complain about it to the vger maintainer. :)
> 
> > please provide a git repo so I can pull from there?
> 
> For sure. It's available in three locations:
> https://git.kernel.org/pub/scm/linux/kernel/git/brauner/xfstests-dev.git/log/?h=idmapped_mounts_v2
> https://gitlab.com/brauner/xfstests/-/tree/idmapped_mounts_v2
> https://github.com/brauner/xfstests/tree/idmapped_mounts_v2

Ok, thanks!

> 
> (Are you fixing the things you pointed out in the individual patches
> yourself or should I resend a new version?)

New version please, I can fix trival things like typo, renumber the
test, code style, etc.

Thanks,
Eryu
Christian Brauner March 22, 2021, 9:49 a.m. UTC | #5
On Mon, Mar 22, 2021 at 10:37:04AM +0800, Eryu Guan wrote:
> On Sun, Mar 21, 2021 at 04:32:00PM +0100, Christian Brauner wrote:
> > On Sun, Mar 21, 2021 at 10:26:35PM +0800, Eryu Guan wrote:
> > > On Tue, Mar 16, 2021 at 11:36:23AM +0100, Christian Brauner wrote:
> > > > Hey everyone,
> > > > 
> > > > /* v9 */
> > > > Rebased onto current master.
> > > > Hopefully we can merge this soon so we can have regular testing asap and
> > > > the rebasing is getting a bit tedious too. ;)
> > > 
> > > Sorry for the late review.. You don't have to rebase on every release if
> > > updating the test seq number is the only thing changed. Seq number
> > > conflicts all the time, usually I can fix it on commit.
> > > 
> > > Patch 2 is missing from the list, maybe it's too big to post, could you
> > 
> > _Sigh_, this seems like another vger issue. The individual Ccs/Tos
> > should've all gotten the patch but it's missing from the list. This is a
> > pattern I've seen quite a few times recently with vger. There's nothing
> > to do apart from complain about it to the vger maintainer. :)
> > 
> > > please provide a git repo so I can pull from there?
> > 
> > For sure. It's available in three locations:
> > https://git.kernel.org/pub/scm/linux/kernel/git/brauner/xfstests-dev.git/log/?h=idmapped_mounts_v2
> > https://gitlab.com/brauner/xfstests/-/tree/idmapped_mounts_v2
> > https://github.com/brauner/xfstests/tree/idmapped_mounts_v2
> 
> Ok, thanks!
> 
> > 
> > (Are you fixing the things you pointed out in the individual patches
> > yourself or should I resend a new version?)
> 
> New version please, I can fix trival things like typo, renumber the

I'll give you a new version hopefully today (CET).

> test, code style, etc.

Thanks!

Christian