On Thu, Jul 11, 2019 at 07:35:16AM -0700, Darrick J. Wong wrote: > On Wed, Jun 19, 2019 at 06:10:47PM +0800, Zorro Lang wrote: > > This case is used to cover xfsprogs bug "b136f48b xfs_quota: fix > > false error reporting of project inheritance flag is not set" at > > first. Then test more behavior when project ineritance flag is > > set or removed. > > > > Signed-off-by: Zorro Lang <zlang@xxxxxxxxxx> > > --- > > <skipping to the good part> > > > diff --git a/tests/xfs/507.out b/tests/xfs/507.out > > new file mode 100644 > > index 00000000..c8c09d3f > > --- /dev/null > > +++ b/tests/xfs/507.out > > @@ -0,0 +1,23 @@ > > +QA output created by 507 > > +== The parent directory has Project inheritance bit by default == > > +Checking project test (path [SCR_MNT]/dir)... > > +Processed 1 ([PROJECTS_FILE] and cmdline) paths for project test with recursion depth infinite (-1). > > + > > +Write SCRATCH_MNT/dir/foo, expect ENOSPC: > > +pwrite: No space left on device > > +Write SCRATCH_MNT/dir/dir_inherit/foo, expect ENOSPC: > > +pwrite: No space left on device > > + > > +== After removing parent directory has Project inheritance bit == > > +Checking project test (path [SCR_MNT]/dir)... > > +[SCR_MNT]/dir - project inheritance flag is not set > > +[SCR_MNT]/dir/foo - project identifier is not set (inode=0, tree=10) > > +[SCR_MNT]/dir/dir_uninherit - project identifier is not set (inode=0, tree=10) > > +[SCR_MNT]/dir/dir_uninherit - project inheritance flag is not set > > +[SCR_MNT]/dir/dir_uninherit/foo - project identifier is not set (inode=0, tree=10) > > +Processed 1 ([PROJECTS_FILE] and cmdline) paths for project test with recursion depth infinite (-1). > > + > > +Write SCRATCH_MNT/dir/foo, expect Success: > > +Write SCRATCH_MNT/dir/dir_inherit/foo, expect ENOSPC: > > +pwrite: No space left on device > > I keep seeing this test failure: > > --- a/xfs/508.out 2019-06-30 08:32:32.216174715 -0700 > +++ b/xfs/508.out.bad 2019-07-11 07:32:30.488000000 -0700 > @@ -19,5 +19,5 @@ > > Write SCRATCH_MNT/dir/foo, expect Success: > Write SCRATCH_MNT/dir/dir_inherit/foo, expect ENOSPC: > -pwrite: No space left on device > +/opt/dir/dir_inherit/foo: Disk quota exceeded Hmm... I never saw this issue. I tested on RHEL-7, RHEL-8.0 and latest upstream xfsprogs & xfs-linux, all passed. > Write SCRATCH_MNT/dir/dir_uninherit/foo, expect Success: > > IIRC EDQUOT is the correct error code for running out of /project/ > quota (and I tried with a modern V5 fs and a V4 fs too) both with > setting no quota options at all and turning on every quota type > supported by the fs. > > Under what circumstances does xfs_io spit out ENOSPC? I didn't test with any special test arguments, all as default. For example, as below test on xfsprogs: HEAD: 8bfb5eac (HEAD -> for-next, origin/for-next) xfs_quota: fix built-in help for project setup xfs-linux: HEAD: 036f463fe15d (HEAD -> for-next, tag: xfs-5.3-merge-10, origin/xfs-5.3-merge, origin/for-next) xfs: online scrub needn't bother zeroing its temporary buffer # ./check xfs/508 FSTYP -- xfs (debug) PLATFORM -- Linux/x86_64 xxx-xxxxxx-xxx 5.2.0-rc4-xfs-for-next MKFS_OPTIONS -- -f -bsize=4096 /dev/mapper/xfscratch MOUNT_OPTIONS -- -o context=system_u:object_r:root_t:s0 /dev/mapper/xfscratch /mnt/scratch xfs/508 5s ... 5s Ran: xfs/508 Passed all 1 tests # xfs_io -V xfs_io version 5.1.0-rc0 # xfs_info /dev/mapper/xfscratch meta-data=/dev/mapper/xfscratch isize=512 agcount=4, agsize=5570560 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=22282240, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=10880, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Do you need me to provide anything else? Thanks, Zorro > > --D > > > +Write SCRATCH_MNT/dir/dir_uninherit/foo, expect Success: > > diff --git a/tests/xfs/group b/tests/xfs/group > > index ffe4ae12..46200752 100644 > > --- a/tests/xfs/group > > +++ b/tests/xfs/group > > @@ -504,3 +504,4 @@ > > 504 auto quick mkfs label > > 505 auto quick spaceman > > 506 auto quick health > > +507 auto quick quota > > -- > > 2.17.2 > >