Exercise mtab renames on different directory layouts too, and increase #procs. Still...
authorfsgqa <fsgqa>
Fri, 23 Apr 2004 02:00:52 +0000 (02:00 +0000)
committerfsgqa <fsgqa>
Fri, 23 Apr 2004 02:00:52 +0000 (02:00 +0000)
089
089.out
src/t_mtab.c

diff --git a/089 b/089
index 1d08cbcbae01d03ae31c44d1bf8e69d5be402357..00825486c4e97212e99da6a270d51b69a6fb7be1 100755 (executable)
--- a/089
+++ b/089
@@ -51,7 +51,19 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
 . ./common.rc
 . ./common.filter
 
+addentries()
+{
+       count=$1
+       pattern="%0$2d"
+
+       while [ $count -gt 0 ]; do
+               touch `printf $pattern $count`
+               count=`expr $count - 1`
+       done
+}
+
 # real QA test starts here
+rm -f $seq.full
 [ "X$TEST_DIR" = "X" ] && exit 1
 cd $TEST_DIR
 rm -fr test
@@ -59,17 +71,31 @@ mkdir test || exit 1
 cd $TEST_DIR/test
 mount > t_mtab
 
-$here/src/t_mtab 2 &
-$here/src/t_mtab 2 &
-$here/src/t_mtab 2 &
-wait
+mtab()
+{
+       $here/src/t_mtab 50 &
+       $here/src/t_mtab 50 &
+       $here/src/t_mtab 50 &
+       wait
+
+       $here/src/t_mtab 10000
+
+       echo directory entries:
+       ls | grep mtab
+       echo directory entries >> $here/$seq.full
+       ls -li >> $here/$seq.full
+}
+
+# directory with only a few entries
+mtab
 
-$here/src/t_mtab 10000
+# directory with a hundred more entries, each 4chars wide
+addentries 100 4
+mtab
 
-echo directory entries:
-ls
-ls -li > $seq.full
+# directory with a thousand more entries, each 8chars wide
+addentries 1000 8
+mtab
 
-# success, all done
 status=0
 exit
diff --git a/089.out b/089.out
index a8c9e4412d6136db89c4b5b82d02d277f3c7dd47..b61a70bec1a7920632648d81978e07bb18d3dca7 100644 (file)
--- a/089.out
+++ b/089.out
@@ -1,7 +1,19 @@
 QA output created by 089
-completed 2 iterations
-completed 2 iterations
-completed 2 iterations
+completed 50 iterations
+completed 50 iterations
+completed 50 iterations
+completed 10000 iterations
+directory entries:
+t_mtab
+completed 50 iterations
+completed 50 iterations
+completed 50 iterations
+completed 10000 iterations
+directory entries:
+t_mtab
+completed 50 iterations
+completed 50 iterations
+completed 50 iterations
 completed 10000 iterations
 directory entries:
 t_mtab
index 917ce8999c195275a3a8a554067821ef3d415f23..89c384ab8a00b6181707f6d957bc91972eb605b6 100644 (file)
@@ -143,11 +143,14 @@ lock_mtab (void) {
                        }
                        we_created_lockfile = 1;
                } else {
+#if 0  /* nathans: dont limit, we are forcing lots of parallel accesses */
                        static int tries = 0;
+#endif
 
                        /* Someone else made the link. Wait. */
                        alarm(LOCK_TIMEOUT);
-                       if (fcntl (fd, F_SETLKW, &flock) == -1) {
+                       if (fcntl (fd, F_SETLKW, &flock) == -1 &&
+                           errno != EBUSY) {
                                int errsv = errno;
                                fprintf(stderr, "can't lock lock file %s: %s",
                                     mounted_lock, (errno == EINTR) ?
@@ -155,6 +158,7 @@ lock_mtab (void) {
                                exit(1);
                        }
                        alarm(0);
+#if 0  /* nathans: dont limit, we are forcing lots of parallel accesses */
                        /* Limit the number of iterations - maybe there
                           still is some old /etc/mtab~ */
                        if (tries++ > 3) {
@@ -166,6 +170,7 @@ lock_mtab (void) {
                                }
                                sleep(1);
                        }
+#endif
                }
                close (fd);
        }