Whamcloud - gitweb
LU-10070 lod: SEL: Repeated components
[fs/lustre-release.git] / lustre / tests / rename.pl
index 4ea020f..3629553 100644 (file)
@@ -12,11 +12,14 @@ use POSIX ":sys_wait_h";
 
 use vars qw(
             $MAX_THREADS
+           $SCRIPT_NAME
             );
  
 # Don't try to run more than this many threads concurrently.
 $MAX_THREADS = 16;
 
+$SCRIPT_NAME = "rename.pl";
+
 # Initialize variables
 my $silent = 0;
 my $create_files = 1; # should we create files or not?
@@ -90,7 +93,7 @@ for (my $i=1; $i<=$num_threads; $i++) {
 # Wait for all our threads to finish.
 my $child = 0;
 do {
-    $child = waitpid(-1, WNOHANG);
+    $child = waitpid(-1, 0);
 } until $child > 0;
 sleep 1;
 
@@ -104,7 +107,7 @@ if ($create_files) {
                unlink("$filepath") if (-e $filepath);
            }
            my $rc = rmdir $path;
-           print "rmdir $path failed: $!\n" if !$rc;       
+           print "$SCRIPT_NAME - rmdir $path failed: $!\n" if !$rc;        
        }
     }
 }
@@ -126,7 +129,7 @@ sub usage () {
     print "\t--mountpt\tlocation of lustre mount\n";
     print "\t--num_mounts=n\tnumber of lustre mounts to test across, default=-1 (single mount point without numeric suffix)\n\n";
     print "example: $0 --mountpt=/mnt/lustre --num_mounts=2 --iterations=50\n";
-    print "         will perform 50 interations in /mnt/lustre1 and /mnt/lustre2\n";
+       print "         will perform 50 iterations in /mnt/lustre1 and /mnt/lustre2\n";
     print "         $0 --mountpt=/mnt/lustre --num_mounts=-1 --iterations=50\n";
     print "         will perform 50 iterations in /mnt/lustre only\n\n";
     exit;
@@ -137,6 +140,11 @@ sub usage () {
 sub create_file ($) {
     my ($path) = @_;;
     
+    if (-e $path) {
+       warn "$path already exists!\n";
+       return 1;
+    }
+
     if ($use_mcreate) {
         my $tmp = `./mcreate $path`;
        if ($tmp =~ /.*error: (.*)\n/) {
@@ -174,18 +182,18 @@ sub fork_and_rename ($) {
                  my $path_f1 = "${mountpt}${which}/${thread_num}.${d}/${f1}";
                  my $path_f2 = "${mountpt}${which}/${thread_num}.${d}/${f2}";
                  
-                 print "Thread $thread_num: [$$] $path_f1 $path_f2 ...\n" if !$silent;
+                 print "$SCRIPT_NAME - Thread $thread_num: [$$] $path_f1 $path_f2 ...\n" if !$silent;
                  my $rc = rename $path_f1, $path_f2;
-                 print "Thread $thread_num: [$$] done: $rc\n" if !$silent;
+                 print "$SCRIPT_NAME - Thread $thread_num: [$$] done: $rc\n" if !$silent;
              }
              if (($current_iteration) % 100 == 0) {
-                 print STDERR "Thread $thread_num: " . $current_iteration . " operations [" . $$ . "]\n";
+                 print "$SCRIPT_NAME - Thread $thread_num: " . $current_iteration . " operations [" . $$ . "]\n";
                  
              }
              $current_iteration++;
          }
 
-         print "Thread $thread_num: Done.\n";
+         print "$SCRIPT_NAME - Thread $thread_num: Done.\n";
 
          exit 0;