[PATCH] generic/386: check the correct field from df output

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



The generic/386 test was checking the "Available" field when it should
have been checking the "1k-blocks" field, which represents the project
quota's hard limit.  On xfs, an empty directory takes no space, so it
doesn't matter.  But for ext4, an empty directory still takes 4k (or
whatever the file system's block size happens to be):

Filesystem           1K-blocks       Used  Available  Use% Pathname
/dev/vdc                512000          4     511996    0% /vdc/test

This causes generic/386 to falsely fail.  There was a confusing
comment claiming that for a very long device name, the df output would
have a line break, and for that reason, the test would extract the
field using $(NF-2).  However, looking at xfsprogs's quota command, I
see no evidence that there is any line breaking logic.  Since we now
want to use the second field, even if there was some line breaking
going on, using $2 should be a better choice.

This fix is needed to fix generic/386 from failing on ext4:

    hard limit 524283904 bytes, expected 524288000

Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>
---
 tests/generic/386 | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/tests/generic/386 b/tests/generic/386
index 0c44c80e..37e9b943 100755
--- a/tests/generic/386
+++ b/tests/generic/386
@@ -62,8 +62,6 @@ _require_scratch
 # both the "df" and the "report" output.  For "report", the line we're
 # interested in contains our project name in the first field.  For "df"
 # it contains our project directory in the last field.
-# But if the device name is too long, the "df" output is broke into two
-# lines, the fourth field is not correct, so take $(NF-2) of "df"
 _filter_quota_rpt() {
 	awk '
 	BEGIN {
@@ -89,7 +87,7 @@ _filter_quota_rpt() {
 			bsize = byte_size($4);
 		} else if ($NF ~ proj_dir) {
 			# this is the "df" output
-			bsize = byte_size($(NF-2));
+			bsize = byte_size($2));
 		} else {
 			next;
 		}
-- 
2.24.1




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux