From: Darrick J. Wong Date: Mon, 20 May 2019 22:30:57 +0000 (-0700) Subject: generic/530: revert commit f8f57747222 X-Git-Tag: v2022.05.01~1160 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=3fac0b7c31bc87bde5c51995e4640dd17f50afcd;p=users%2Fhch%2Fxfstests-dev.git generic/530: revert commit f8f57747222 Commit f8f57747222 ("generic/530: fix shutdown failure of generic/530 in overlay") improperly clears an overlayfs test failure by shutting down the filesystem after all the tempfiles are closed, which totally defeats the purpose of both generic/530 and xfs/501. Revert this commit so we can fix it properly. Signed-off-by: Darrick J. Wong Reviewed-by: Amir Goldstein Signed-off-by: Eryu Guan --- diff --git a/src/t_open_tmpfiles.c b/src/t_open_tmpfiles.c index 0393c6bd8..da9390fd8 100644 --- a/src/t_open_tmpfiles.c +++ b/src/t_open_tmpfiles.c @@ -24,6 +24,7 @@ static int min_fd = -1; static int max_fd = -1; static unsigned int nr_opened = 0; static float start_time; +static int shutdown_fs = 0; void clock_time(float *time) { @@ -68,6 +69,22 @@ void die(void) end_time - start_time); fflush(stdout); + if (shutdown_fs) { + /* + * Flush the log so that we have to process the + * unlinked inodes the next time we mount. + */ + int flag = XFS_FSOP_GOING_FLAGS_LOGFLUSH; + int ret; + + ret = ioctl(min_fd, XFS_IOC_GOINGDOWN, &flag); + if (ret) { + perror("shutdown"); + exit(2); + } + exit(0); + } + clock_time(&start_time); for (fd = min_fd; fd <= max_fd; fd++) close(fd); @@ -143,6 +160,8 @@ int main(int argc, char *argv[]) if (ret) perror(argv[1]); } + if (argc > 2 && !strcmp(argv[2], "shutdown")) + shutdown_fs = 1; clock_time(&start_time); while (1) diff --git a/tests/generic/530 b/tests/generic/530 index 56c6d32a3..b0d188b1e 100755 --- a/tests/generic/530 +++ b/tests/generic/530 @@ -49,9 +49,7 @@ ulimit -n $max_files # Open a lot of unlinked files echo create >> $seqres.full -$here/src/t_open_tmpfiles $SCRATCH_MNT >> $seqres.full -_scratch_shutdown -f - +$here/src/t_open_tmpfiles $SCRATCH_MNT shutdown >> $seqres.full # Unmount to prove that we can clean it all echo umount >> $seqres.full diff --git a/tests/xfs/501 b/tests/xfs/501 index 4be9997c3..974f34140 100755 --- a/tests/xfs/501 +++ b/tests/xfs/501 @@ -54,9 +54,7 @@ ulimit -n $max_files # Open a lot of unlinked files echo create >> $seqres.full -$here/src/t_open_tmpfiles $SCRATCH_MNT >> $seqres.full -_scratch_shutdown -f - +$here/src/t_open_tmpfiles $SCRATCH_MNT shutdown >> $seqres.full # Unmount to prove that we can clean it all echo umount >> $seqres.full