X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fcreatemany.c;h=1e6ff1f5279320c56e8c57b6d66fb125bd722ebf;hb=16dcdf3b09ee15eb8bd5b43cbe413dff72bf3bca;hp=f426488230921dc7f6c1faeb7d64aa7651b6a2a9;hpb=239ac78a9f3630c22f120b148740463a357e7a0a;p=fs%2Flustre-release.git diff --git a/lustre/tests/createmany.c b/lustre/tests/createmany.c index f426488..1e6ff1f 100644 --- a/lustre/tests/createmany.c +++ b/lustre/tests/createmany.c @@ -14,15 +14,15 @@ void usage(char *prog) { - printf("usage: %s {-o|-m|-l} filenamefmt count\n", prog); - printf(" %s {-o|-m|-l} filenamefmt -seconds\n", prog); - printf(" %s {-o|-m|-l} filenamefmt start count\n", prog); + printf("usage: %s {-o|-m|-d|-l} filenamefmt count\n", prog); + printf(" %s {-o|-m|-d|-l} filenamefmt -seconds\n", prog); + printf(" %s {-o|-m|-d|-l} filenamefmt start count\n", prog); } int main(int argc, char ** argv) { - int i, rc = 0, do_open = 0, do_link = 0; - char format[4096], *fmt, *tgt; + int i, rc = 0, do_open = 0, do_link = 0, do_mkdir = 0; + char format[4096], *fmt, *tgt = NULL; char filename[4096]; long start, last, end; long begin = 0, count; @@ -32,7 +32,9 @@ int main(int argc, char ** argv) return 1; } - if (strcmp(argv[1], "-o") == 0) { + if (strcmp(argv[1], "-d") == 0) { + do_mkdir = 1; + } else if (strcmp(argv[1], "-o") == 0) { do_open = 1; } else if (strncmp(argv[1], "-l", 2) == 0 && argv[1][2]) { tgt = argv[1] + 2; @@ -73,7 +75,7 @@ int main(int argc, char ** argv) for (i = 0; i < count && time(0) < end; i++, begin++) { sprintf(filename, fmt, begin); if (do_open) { - int fd = open(filename, O_CREAT|O_RDWR, 0644); + int fd = open(filename, O_CREAT | O_RDWR, 0644); if (fd < 0) { printf("open(%s) error: %s\n", filename, strerror(errno)); @@ -81,16 +83,24 @@ int main(int argc, char ** argv) break; } close(fd); - } else if (do_link) { + } else if (do_link) { rc = link(tgt, filename); if (rc) { printf("link(%s, %s) error: %s\n", - tgt, filename, strerror(errno)); + tgt, filename, strerror(errno)); + rc = errno; + break; + } + } else if (do_mkdir) { + rc = mkdir(filename, 0755); + if (rc) { + printf("mkdir(%s) error: %s\n", + filename, strerror(errno)); rc = errno; break; } } else { - rc = mknod(filename, S_IFREG| 0444, 0); + rc = mknod(filename, S_IFREG | 0444, 0); if (rc) { printf("mknod(%s) error: %s\n", filename, strerror(errno));