Whamcloud - gitweb
LU-14565 ofd: Do not rely on tgd_blockbit
[fs/lustre-release.git] / lustre / tests / unlinkmany.c
index 3cce72b..1cc3de5 100644 (file)
@@ -25,7 +25,6 @@
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
  */
 
 #include <stdio.h>
 
 void usage(char *prog)
 {
-       printf("usage: %s filenamefmt count\n", prog);
-       printf("       %s filenamefmt start count\n", prog);
+       printf("usage: %s [option] filenamefmt count\n", prog);
+       printf("       %s [option] filenamefmt start count\n", prog);
+       printf("Options are:\n");
+       printf("       -d : remove directory\n");
+       printf("Examples:\n");
+       printf("unlinkmany $DIR/dir 100 # Remove file dir0..dir99\n");
+       printf("unlinkmany -d $DIR/dir 100 # Remove directory dir0..dir99\n");
 }
 
-int main(int argc, char ** argv)
+int main(int argc, char **argv)
 {
-        int i, rc = 0, do_rmdir = 0;
-        char format[4096], *fmt;
-        char filename[4096];
-        long start, last;
+       int i, rc = 0, do_rmdir = 0;
+       char format[4096], *fmt;
+       char filename[4096];
+       long start, last;
        long begin = 0, count;
 
-        if (argc < 3 || argc > 5) {
+       if (argc < 3 || argc > 5) {
                usage(argv[0]);
-                return 1;
-        }
+               return 1;
+       }
 
        if (strcmp(argv[1], "-d") == 0) {
                do_rmdir = 1;
@@ -63,19 +67,20 @@ int main(int argc, char ** argv)
                argc--;
        }
 
-        if (strlen(argv[1]) > 4080) {
-                printf("name too long\n");
-                return 1;
-        }
+       if (strlen(argv[1]) > 4080) {
+               printf("name too long\n");
+               return 1;
+       }
 
-        start = last = time(0);
+       start = time(0);
+       last = start;
 
        if (argc == 3) {
                count = strtol(argv[2], NULL, 0);
                if (count < 1) {
-                        printf("count must be at least one\n");
-                        return 1;
-                }
+                       printf("count must be at least one\n");
+                       return 1;
+               }
        } else {
                begin = strtol(argv[2], NULL, 0);
                count = strtol(argv[3], NULL, 0);
@@ -83,32 +88,32 @@ int main(int argc, char ** argv)
 
        if (strchr(argv[1], '%')) {
                fmt = argv[1];
-        } else {
+       } else {
                sprintf(format, "%s%%d", argv[1]);
                fmt = format;
        }
-        for (i = 0; i < count; i++, begin++) {
-                sprintf(filename, fmt, begin);
+
+       for (i = 0; i < count; i++, begin++) {
+               sprintf(filename, fmt, begin);
                if (do_rmdir)
                        rc = rmdir(filename);
                else
                        rc = unlink(filename);
-                if (rc) {
-                        printf("%s(%s) error: %s\n",
+               if (rc) {
+                       printf("%s(%s) error: %s\n",
                               do_rmdir ? "rmdir" : "unlink",
-                               filename, strerror(errno));
-                        rc = errno;
-                        break;
-                }
-                if ((i % 10000) == 0) {
-                        printf(" - unlinked %d (time %ld ; total %ld ; last "
-                               "%ld)\n", i, time(0), time(0) - start,
-                               time(0) - last);
-                        last = time(0);
-                }
-        }
-        printf("total: %d unlinks in %ld seconds: %f unlinks/second\n", i,
-               time(0) - start, ((float)i / (time(0) - start)));
+                              filename, strerror(errno));
+                       rc = errno;
+                       break;
+               }
+               if ((i % 10000) == 0) {
+                       printf(" - unlinked %d (time %ld ; total %ld ; last %ld)\n",
+                              i, time(0), time(0) - start, time(0) - last);
+                       last = time(0);
+               }
+       }
+       printf("total: %d unlinks in %ld seconds: %f unlinks/second\n", i,
+              time(0) - start, ((float)i / (time(0) - start)));
 
-        return rc;
+       return rc;
 }