Whamcloud - gitweb
file export-do_kern_mount.patch was initially added on branch b1_5.
[fs/lustre-release.git] / lustre / tests / multiop.c
index 0402aff..b147d9d 100755 (executable)
@@ -45,7 +45,11 @@ char usage[] =
 "        Y  fdatasync\n"
 "        z  seek to zero\n";
 
-void null_handler(int unused) { }
+static int usr1_received;
+void usr1_handler(int unused) 
+{ 
+        usr1_received = 1;
+}
 
 static const char *
 pop_arg(int argc, char *argv[])
@@ -73,14 +77,17 @@ int main(int argc, char **argv)
                 exit(1);
         }
 
-        signal(SIGUSR1, null_handler);
+        signal(SIGUSR1, usr1_handler);
 
         fname = argv[1];
 
         for (commands = argv[2]; *commands; commands++) {
                 switch (*commands) {
                 case '_':
-                        pause();
+                        if (usr1_received == 0)
+                                pause();
+                        usr1_received = 0;
+                        signal(SIGUSR1, usr1_handler);
                         break;
                 case 'c':
                         if (close(fd) == -1) {
@@ -96,7 +103,8 @@ int main(int argc, char **argv)
                         }
                         break;
                 case 'D':
-                        if (open(fname, O_DIRECTORY) == -1) {
+                        fd = open(fname, O_DIRECTORY);
+                        if (fd == -1) {
                                 perror("open(O_DIRECTORY)");
                                 exit(1);
                         }
@@ -204,12 +212,14 @@ int main(int argc, char **argv)
                                 exit(1);
                         }
                         break;
-                case 'w':
-                        if (write(fd, "w", 1) == -1) {
+                case 'w': {
+                        int rc;
+                        if ((rc = write(fd, "w", 1)) == -1) {
                                 perror("write");
                                 exit(1);
                         }
                         break;
+                }
                 case 'W':
                         for (i = 0; i < mmap_len && mmap_ptr; i += 4096)
                                 mmap_ptr[i] += junk++;