Testcases are recommended to use _require_scratch_shutdown()
and _scratch_shutdown() pair helper function to test and execute
shutdown.
generic/530 formmerly used _require_scratch_shutdown() to test
whether the filesystem supports shutdown or not, while executed
the shutdown action in a raw binary (src/t_open_tmpfiles) rather
than the recommended _scratch_shutdown() helper. This will cause
a "shutdown: Inappropriate ioctl for device" error message when
testing overlay filesystem.
This patch simply move the shutdown action from the raw binary
into the packaged _scratch_shutdown() helper. That is, we remove
the "shutdown" interface of t_open_tmpfiles.c and call
_scratch_shutdown() in genric/530 and xfs/501.
Signed-off-by: Jeffle Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
static int max_fd = -1;
static unsigned int nr_opened = 0;
static float start_time;
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)
{
void clock_time(float *time)
{
end_time - start_time);
fflush(stdout);
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);
clock_time(&start_time);
for (fd = min_fd; fd <= max_fd; fd++)
close(fd);
if (ret)
perror(argv[1]);
}
if (ret)
perror(argv[1]);
}
- if (argc > 2 && !strcmp(argv[2], "shutdown"))
- shutdown_fs = 1;
clock_time(&start_time);
while (1)
clock_time(&start_time);
while (1)
# Open a lot of unlinked files
echo create >> $seqres.full
# Open a lot of unlinked files
echo create >> $seqres.full
-$here/src/t_open_tmpfiles $SCRATCH_MNT shutdown >> $seqres.full
+$here/src/t_open_tmpfiles $SCRATCH_MNT >> $seqres.full
+_scratch_shutdown -f
+
# Unmount to prove that we can clean it all
echo umount >> $seqres.full
# Unmount to prove that we can clean it all
echo umount >> $seqres.full
# Open a lot of unlinked files
echo create >> $seqres.full
# Open a lot of unlinked files
echo create >> $seqres.full
-$here/src/t_open_tmpfiles $SCRATCH_MNT shutdown >> $seqres.full
+$here/src/t_open_tmpfiles $SCRATCH_MNT >> $seqres.full
+_scratch_shutdown -f
+
# Unmount to prove that we can clean it all
echo umount >> $seqres.full
# Unmount to prove that we can clean it all
echo umount >> $seqres.full