* [PATCH] fsstress: cleanup flist with test directory together
@ 2017-05-17 15:48 Zorro Lang
0 siblings, 0 replies; only message in thread
From: Zorro Lang @ 2017-05-17 15:48 UTC (permalink / raw)
To: fstests
The "-c" option of fsstress will clean up the test directory after
each run. But it only does "rm -rf $dir". If run fsstress likes:
fsstress -d $test_dir -n 1000 -p 10 -l 0 -c
fsstress will remove all test directories at the end of each run,
but the flist still save those *deleted* entries. It'll cause
more and more useless ENOENT failures. So we need to release all
entries in flist too.
Signed-off-by: Zorro Lang <zlang@redhat.com>
---
ltp/fsstress.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/ltp/fsstress.c b/ltp/fsstress.c
index 6d8f117..e9fd276 100644
--- a/ltp/fsstress.c
+++ b/ltp/fsstress.c
@@ -280,6 +280,7 @@ int attr_list_path(pathname_t *, char *, const int, int, attrlist_cursor_t *);
int attr_remove_path(pathname_t *, const char *, int);
int attr_set_path(pathname_t *, const char *, const char *, const int, int);
void check_cwd(void);
+void cleanup_flist(void);
int creat_path(pathname_t *, mode_t);
void dcache_enter(int, int);
void dcache_init(void);
@@ -794,6 +795,25 @@ check_cwd(void)
#endif
}
+/*
+ * go thru flist and release all entries
+ *
+ * NOTE: this function shouldn't be called until the end of a process
+ */
+void
+cleanup_flist(void)
+{
+ flist_t *flp;
+ int i;
+
+ for (i = 0, flp = flist; i < FT_nft; i++, flp++) {
+ flp->nslots = 0;
+ flp->nfiles = 0;
+ free(flp->fents);
+ flp->fents = NULL;
+ }
+}
+
int
creat_path(pathname_t *name, mode_t mode)
{
@@ -945,6 +965,7 @@ errout:
if (cleanup) {
sprintf(cmd, "rm -rf %s", buf);
system(cmd);
+ cleanup_flist();
}
}
--
2.7.4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2017-05-17 15:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-17 15:48 [PATCH] fsstress: cleanup flist with test directory together Zorro Lang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.