diff --git a/lustre/tests/Makefile.am b/lustre/tests/Makefile.am index b14261f6d815effe8eee2ebc4374f8c05b5baaa0..fb82d572be213d4259d0a191363103a24d6cb8d1 100644 --- a/lustre/tests/Makefile.am +++ b/lustre/tests/Makefile.am @@ -28,7 +28,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) $(noinst_DATA) \ if TESTS noinst_PROGRAMS = openunlink truncate directio openme writeme mlink utime noinst_PROGRAMS += tchmod toexcl fsx test_brw openclose createdestroy -noinst_PROGRAMS += stat createmany chownmany statmany multifstat createtest +noinst_PROGRAMS += createmany chownmany statmany multifstat createtest noinst_PROGRAMS += opendirunlink opendevunlink unlinkmany fchdir_test checkstat noinst_PROGRAMS += wantedi statone runas openfile getdents o_directory rmdirmany noinst_PROGRAMS += small_write multiop sleeptest ll_sparseness_verify cmknod @@ -49,7 +49,6 @@ test_DATA = $(noinst_DATA) nobase_test_DATA = $(nobase_noinst_DATA) endif # TESTS -stat_SOURCES = stat.c stat_fs.h # mkdirdeep_LDADD=-L$(top_builddir)/lnet/utils -lptlctl $(LIBREADLINE) mmap_sanity_SOURCES= mmap_sanity.c diff --git a/lustre/tests/stat.c b/lustre/tests/stat.c deleted file mode 100644 index 9963650e5f6c0d022bbcc86329ed611f1e9419f1..0000000000000000000000000000000000000000 --- a/lustre/tests/stat.c +++ /dev/null @@ -1,906 +0,0 @@ -#include <stdio.h> -#include <sys/stat.h> -#include <sys/sysmacros.h> -#include <pwd.h> -#include <grp.h> -#include <unistd.h> -#include <time.h> -#include <sys/vfs.h> -#include <string.h> -#include <malloc.h> -#include <ctype.h> -#include <stdlib.h> - -#ifdef FLASK_LINUX -#include <selinux/fs_secure.h> -#include <linux/flask/security.h> -#include <selinux/flask_util.h> /* for is_flask_enabled() */ -#define SECURITY_ID_T security_id_t -#else -#define SECURITY_ID_T int -#endif - -#include "stat_fs.h" - -void print_human_type(unsigned short mode) -{ - switch (mode & S_IFMT) - { - case S_IFDIR: - printf ("Directory"); - break; - case S_IFCHR: - printf ("Character Device"); - break; - case S_IFBLK: - printf ("Block Device"); - break; - case S_IFREG: - printf ("Regular File"); - break; - case S_IFLNK: - printf ("Symbolic Link"); - break; - case S_IFSOCK: - printf ("Socket"); - break; - case S_IFIFO: - printf ("Fifo File"); - break; - default: - printf ("Unknown"); - } -} - -void print_human_fstype(struct statfs *statfsbuf) -{ - char *type; - - switch (statfsbuf->f_type) -#if defined (__linux__) - { - case S_MAGIC_AFFS: - type = strdup("affs"); - break; - case S_MAGIC_EXT: - type = strdup("ext"); - break; - case S_MAGIC_EXT2_OLD: - type = strdup("ext2"); - break; - case S_MAGIC_EXT2: - type = strdup("ext2/ext3"); - break; - case S_MAGIC_HPFS: - type = strdup("hpfs"); - break; - case S_MAGIC_ISOFS: - type = strdup("isofs"); - break; - case S_MAGIC_ISOFS_WIN: - type = strdup("isofs"); - break; - case S_MAGIC_ISOFS_R_WIN: - type = strdup("isofs"); - break; - case S_MAGIC_MINIX: - type = strdup("minix"); - break; - case S_MAGIC_MINIX_30: - type = strdup("minix (30 char.)"); - break; - case S_MAGIC_MINIX_V2: - type = strdup("minix v2"); - break; - case S_MAGIC_MINIX_V2_30: - type = strdup("minix v2 (30 char.)"); - break; - case S_MAGIC_MSDOS: - type = strdup("msdos"); - break; - case S_MAGIC_FAT: - type = strdup("fat"); - break; - case S_MAGIC_NCP: - type = strdup("novell"); - break; - case S_MAGIC_NFS: - type = strdup("nfs"); - break; - case S_MAGIC_PROC: - type = strdup("proc"); - break; - case S_MAGIC_SMB: - type = strdup("smb"); - break; - case S_MAGIC_XENIX: - type = strdup("xenix"); - break; - case S_MAGIC_SYSV4: - type = strdup("sysv4"); - break; - case S_MAGIC_SYSV2: - type = strdup("sysv2"); - break; - case S_MAGIC_COH: - type = strdup("coh"); - break; - case S_MAGIC_UFS: - type = strdup("ufs"); - break; - case S_MAGIC_XIAFS: - type = strdup("xia"); - break; - case S_MAGIC_NTFS: - type = strdup("ntfs"); - break; - case S_MAGIC_TMPFS: - type = strdup("tmpfs"); - break; - case S_MAGIC_REISERFS: - type = strdup("reiserfs"); - break; - case S_MAGIC_CRAMFS: - type = strdup("cramfs"); - break; - case S_MAGIC_ROMFS: - type = strdup("romfs"); - break; - case S_MAGIC_LUSTRE: - type = strdup("lustre"); - break; -#elif __GNU__ - case FSTYPE_UFS: - type = strdup("ufs"); - break; - case FSTYPE_NFS: - type = strdup("nfs"); - break; - case FSTYPE_GFS: - type = strdup("gfs"); - break; - case FSTYPE_LFS: - type = strdup("lfs"); - break; - case FSTYPE_SYSV: - type = strdup("sysv"); - break; - case FSTYPE_FTP: - type = strdup("ftp"); - break; - case FSTYPE_TAR: - type = strdup("tar"); - break; - case FSTYPE_AR: - type = strdup("ar"); - break; - case FSTYPE_CPIO: - type = strdup("cpio"); - break; - case FSTYPE_MSLOSS: - type = strdup("msloss"); - break; - case FSTYPE_CPM: - type = strdup("cpm"); - break; - case FSTYPE_HFS: - type = strdup("hfs"); - break; - case FSTYPE_DTFS: - type = strdup("dtfs"); - break; - case FSTYPE_GRFS: - type = strdup("grfs"); - break; - case FSTYPE_TERM: - type = strdup("term"); - break; - case FSTYPE_DEV: - type = strdup("dev"); - break; - case FSTYPE_PROC: - type = strdup("proc"); - break; - case FSTYPE_IFSOCK: - type = strdup("ifsock"); - break; - case FSTYPE_AFS: - type = strdup("afs"); - break; - case FSTYPE_DFS: - type = strdup("dfs"); - break; - case FSTYPE_PROC9: - type = strdup("proc9"); - break; - case FSTYPE_SOCKET: - type = strdup("socket"); - break; - case FSTYPE_MISC: - type = strdup("misc"); - break; - case FSTYPE_EXT2FS: - type = strdup("ext2/ext3"); - break; - case FSTYPE_HTTP: - type = strdup("http"); - break; - case FSTYPE_MEMFS: - type = strdup("memfs"); - break; - case FSTYPE_ISO9660: - type = strdup("iso9660"); - break; -#endif - default: - if ((type = (char*)malloc(30 * sizeof(char))) == NULL) { - perror("malloc error"); - return; - } - sprintf (type, "UNKNOWN (0x%x)\n", (int)statfsbuf->f_type); - } - - printf("%s", type); - free(type); -} - -void print_human_access(struct stat *statbuf) -{ - char access[11]; - - access[10] = 0; - access[9] = (statbuf->st_mode & S_IXOTH) ? - ((statbuf->st_mode & S_ISVTX) ? 't' : 'x') : - ((statbuf->st_mode & S_ISVTX) ? 'T' : '-'); - access[8] = (statbuf->st_mode & S_IWOTH) ? 'w' : '-'; - access[7] = (statbuf->st_mode & S_IROTH) ? 'r' : '-'; - access[6] = (statbuf->st_mode & S_IXGRP) ? - ((statbuf->st_mode & S_ISGID) ? 's' : 'x') : - ((statbuf->st_mode & S_ISGID) ? 'S' : '-'); - access[5] = (statbuf->st_mode & S_IWGRP) ? 'w' : '-'; - access[4] = (statbuf->st_mode & S_IRGRP) ? 'r' : '-'; - access[3] = (statbuf->st_mode & S_IXUSR) ? - ((statbuf->st_mode & S_ISUID) ? 's' : 'x') : - ((statbuf->st_mode & S_ISUID) ? 'S' : '-'); - access[2] = (statbuf->st_mode & S_IWUSR) ? 'w' : '-'; - access[1] = (statbuf->st_mode & S_IRUSR) ? 'r' : '-'; - - switch (statbuf->st_mode & S_IFMT) - { - case S_IFDIR: - access[0] = 'd'; - break; - case S_IFCHR: - access[0] = 'c'; - break; - case S_IFBLK: - access[0] = 'b'; - break; - case S_IFREG: - access[0] = '-'; - break; - case S_IFLNK: - access[0] = 'l'; - break; - case S_IFSOCK: - access[0] = 's'; - break; - case S_IFIFO: - access[0] = 'p'; - break; - default: - access[0] = '?'; - } - printf (access); -} - -/* trick gcc into being unable to recognize the %c format so it doesn't - * issue its inane warning about %c and two-digit year representations. */ -static size_t strftime_wrapper(char *s, size_t max, const char *fmt, - struct tm *tm) { - return strftime(s, max, fmt, tm); -} - -void print_human_time(time_t *t) -{ - char str[40]; - - if (strftime_wrapper(str, 40, "%c", localtime(t)) > 0) - printf(str); - else - printf("Cannot calculate human readable time, sorry"); -} - -/* print statfs info */ -void print_statfs(char *pformat, char m, char *filename, void *data, SECURITY_ID_T sid) -{ - struct statfs *statfsbuf = (struct statfs*)data; -#ifdef FLASK_LINUX - char sbuf[256]; - int rv; - unsigned int sbuflen = sizeof(sbuf); -#endif - - switch(m) { - case 'n': - strcat(pformat, "s"); - printf(pformat, filename); - break; -#if !defined(__linux__) && defined (__GNU__) - case 'i': - strcat(pformat, "Lx"); - printf(pformat, statfsbuf->f_fsid); - break; -#else - case 'i': - strcat(pformat, "x %-8x"); - printf(pformat, statfsbuf->f_fsid.__val[0], statfsbuf->f_fsid.__val[1]); - break; -#endif - - case 'l': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "lu"); -#else - strcat(pformat, "d"); -#endif - printf(pformat, statfsbuf->f_namelen); - break; - case 't': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "lx"); -#else - strcat(pformat, "x"); -#endif - printf(pformat, statfsbuf->f_type); - break; - case 'T': -/* print_human_fstype(statfsbuf, pformat);*/ - print_human_fstype(statfsbuf); - break; - case 'b': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "lld"); -#else -#if !defined(__linux__) && defined (__GNU__) - strcat(pformat, "d"); -#else - strcat(pformat, "ld"); -#endif -#endif - printf(pformat, statfsbuf->f_blocks); - break; - case 'f': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "lld"); -#else -#if !defined(__linux__) && defined (__GNU__) - strcat(pformat, "d"); -#else - strcat(pformat, "ld"); -#endif -#endif - printf(pformat, statfsbuf->f_bfree); - break; - case 'a': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "lld"); -#else -#if !defined(__linux__) && defined (__GNU__) - strcat(pformat, "d"); -#else - strcat(pformat, "ld"); -#endif -#endif - printf(pformat, statfsbuf->f_bavail); - break; - case 's': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "ld"); -#else - strcat(pformat, "d"); -#endif - printf(pformat, statfsbuf->f_bsize); - break; - case 'c': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "lld"); -#else -#if !defined(__linux__) && defined (__GNU__) - strcat(pformat, "d"); -#else - strcat(pformat, "ld"); -#endif -#endif - printf(pformat, statfsbuf->f_files); - break; - case 'd': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "lld"); -#else -#if !defined(__linux__) && defined (__GNU__) - strcat(pformat, "d"); -#else - strcat(pformat, "ld"); -#endif -#endif - printf(pformat, statfsbuf->f_ffree); - break; -#ifdef FLASK_LINUX - case 'S': - strcat(pformat, "d"); - printf(pformat, sid); - break; - case 'C': - rv = security_sid_to_context(sid, (security_context_t *) &sbuf, &sbuflen); - if ( rv < 0 ) - sprintf(sbuf, "<error finding security context %d>", sid); - printf(sbuf); - break; -#endif - default: - strcat(pformat, "c"); - printf(pformat, m); - break; - } -} - -/* print stat info */ -void print_stat(char *pformat, char m, char *filename, void *data, SECURITY_ID_T sid) -{ - char linkname[256]; - int i; - struct stat *statbuf = (struct stat*)data; - struct passwd *pw_ent; - struct group *gw_ent; -#ifdef FLASK_LINUX - char sbuf[256]; - int rv; - unsigned int sbuflen = sizeof(sbuf); -#endif - - switch(m) { - case 'n': - strcat(pformat, "s"); - printf(pformat, filename); - break; - case 'N': - strcat(pformat, "s"); - if ((statbuf->st_mode & S_IFMT) == S_IFLNK) { - if ((i = readlink(filename, linkname, 256)) == -1) { - perror(filename); - return; - } - linkname[(i >= 256) ? 255 : i] = '\0'; - /*printf("\"%s\" -> \"%s\"", filename, linkname);*/ - printf("\""); - printf(pformat, filename); - printf("\" -> \""); - printf(pformat, linkname); - printf("\""); - } else { - printf("\""); - printf(pformat, filename); - printf("\""); - } - break; - case 'd': - strcat(pformat, "d"); - printf(pformat, (int)statbuf->st_dev); - break; - case 'D': - strcat(pformat, "x"); - printf(pformat, (int)statbuf->st_dev); - break; - case 'i': - strcat(pformat, "d"); - printf(pformat, (int)statbuf->st_ino); - break; - case 'a': - strcat(pformat, "o"); - printf(pformat, statbuf->st_mode & 07777); - break; - case 'A': - print_human_access(statbuf); - break; - case 'f': - strcat(pformat, "x"); - printf(pformat, statbuf->st_mode); - break; - case 'F': - print_human_type(statbuf->st_mode); - break; - case 'h': - strcat(pformat, "d"); - printf(pformat, (int)statbuf->st_nlink); - break; -#ifdef FLASK_LINUX - case 'S': - strcat(pformat, "d"); - printf(pformat, sid); - break; - case 'C': - rv = security_sid_to_context(sid, (security_context_t *) &sbuf, &sbuflen); - if ( rv < 0 ) - sprintf(sbuf, "<error finding security context %d>", sid); - printf(sbuf); - break; -#endif - case 'u': - strcat(pformat, "d"); - printf(pformat, statbuf->st_uid); - break; - case 'U': - strcat(pformat, "s"); - setpwent(); - pw_ent = getpwuid(statbuf->st_uid); - printf(pformat, - (pw_ent != 0L) ? pw_ent->pw_name : "UNKNOWN"); - break; - case 'g': - strcat(pformat, "d"); - printf(pformat, statbuf->st_gid); - break; - case 'G': - strcat(pformat, "s"); - setgrent(); - gw_ent = getgrgid(statbuf->st_gid); - printf(pformat, - (gw_ent != 0L) ? gw_ent->gr_name : "UNKNOWN"); - break; - case 't': - strcat(pformat, "x"); - printf(pformat, major(statbuf->st_rdev)); - break; - case 'T': - strcat(pformat, "x"); - printf(pformat, minor(statbuf->st_rdev)); - break; - case 's': -#ifdef __USE_FILE_OFFSET64 - strcat(pformat, "llu"); - printf(pformat, (unsigned long long)statbuf->st_size); -#else - strcat(pformat, "u"); - printf(pformat, (unsigned int)statbuf->st_size); -#endif - break; - case 'b': - strcat(pformat, "u"); - printf(pformat, (unsigned int)statbuf->st_blocks); - break; - case 'o': - strcat(pformat, "d"); - printf(pformat, (int)statbuf->st_blksize); - break; - case 'x': - print_human_time(&(statbuf->st_atime)); - break; - case 'X': - strcat(pformat, "d"); - printf(pformat, (int)statbuf->st_atime); - break; - case 'y': - print_human_time(&(statbuf->st_mtime)); - break; - case 'Y': - strcat(pformat, "d"); - printf(pformat, (int)statbuf->st_mtime); - break; - case 'z': - print_human_time(&(statbuf->st_ctime)); - break; - case 'Z': - strcat(pformat, "d"); - printf(pformat, (int)statbuf->st_ctime); - break; - default: - strcat(pformat, "c"); - printf(pformat, m); - break; - } -} - -void print_it(char *masterformat, char *filename, - void (*print_func)(char*, char, char*, void*, SECURITY_ID_T), void *data, SECURITY_ID_T sid) -{ - char *m, *b, *format; - char pformat[65]; - - /* create a working copy of the format string */ - format = strdup(masterformat); - if (!format) { - perror(filename); - return; - } - - b = format; - while (b) - { - if ((m = strchr(b, (int)'%')) != NULL) - { - strcpy (pformat, "%"); - *m++ = '\0'; - printf(b); - - /* copy all format specifiers to our format string */ - while (isdigit(*m) || strchr("#0-+. I", *m)) - { - char copy[2]="a"; - - *copy = *m; - /* make sure the format specifier is not too long */ - if (strlen (pformat) > 63) - fprintf(stderr, "Warning: Format specifier too long, truncating: %s\n", pformat); - else - strcat (pformat, copy); - m++; - } - - switch(*m) { - case '\0': - case '%': - printf("%%"); - break; - default: - print_func(pformat, *m, filename, data, sid); - break; - } - b = m + 1; - } - else - { - printf(b); - b = NULL; - } - } - free(format); - printf("\n"); -} - -/* stat the filesystem and print what we find */ -void -do_statfs (char *filename, int terse, int secure, char *format) -{ - struct statfs statfsbuf; - SECURITY_ID_T sid = -1; - int i; - -#ifdef FLASK_LINUX - if(!is_flask_enabled()) - secure = 0; - if(secure) - i = statfs_secure(filename, &statfsbuf, &sid); - else -#endif - i = statfs(filename, &statfsbuf); - if(i == -1) - { - perror (filename); - return; - } - - if (format == NULL) - { - if (terse != 0) - { -#ifdef FLASK_LINUX - if(secure) - format = "%n %i %l %t %b %f %a %s %c %d %S %C"; - else -#endif - format = "%n %i %l %t %b %f %a %s %c %d"; - } - else - { -#ifdef FLASK_LINUX - if(secure) - format = " File: \"%n\"\n" - " ID: %-8i Namelen: %-7l Type: %T\n" - "Blocks: Total: %-10b Free: %-10f Available: %-10a Size: %s\n" - "Inodes: Total: %-10c Free: %-10d\n" - " SID: %-14S S_Context: %C\n"; - else -#endif - format = " File: \"%n\"\n" - " ID: %-8i Namelen: %-7l Type: %T\n" - "Blocks: Total: %-10b Free: %-10f Available: %-10a Size: %s\n" - "Inodes: Total: %-10c Free: %-10d"; - } - } - - print_it(format, filename, print_statfs, &statfsbuf, sid); -} - -/* stat the file and print what we find */ -void -do_stat (char *filename, int link, int terse, int secure, char *format) -{ - struct stat statbuf; - int i; - SECURITY_ID_T sid = -1; - -#ifdef FLASK_LINUX - if(!is_flask_enabled()) - secure = 0; - if(secure) - i = (link == 1) ? stat_secure(filename, &statbuf, &sid) : lstat_secure(filename, &statbuf, &sid); - else -#endif - i = (link == 1) ? stat(filename, &statbuf) : lstat(filename, &statbuf); - - if (i == -1) - { - perror (filename); - return; - } - - if (format == NULL) - { - if (terse != 0) - { -#ifdef FLASK_LINUX - if (secure) - format = "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o %S %C"; - else -#endif - format = "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o"; - } - else - { - /* tmp hack to match orignal output until conditional implemented */ - i = statbuf.st_mode & S_IFMT; - if (i == S_IFCHR || i == S_IFBLK) { -#ifdef FLASK_LINUX - if (secure) - format = - " File: %N\n" - " Size: %-10s\tBlocks: %-10b IO Block: %-6o %F\n" - "Device: %Dh/%dd\tInode: %-10i Links: %-5h" - " Device type: %t,%T\n" - "Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n" - " SID: %-14S S_Context: %C\n" - "Access: %x\n" - "Modify: %y\n" - "Change: %z\n"; - else -#endif - format = - " File: %N\n" - " Size: %-10s\tBlocks: %-10b IO Block: %-6o %F\n" - "Device: %Dh/%dd\tInode: %-10i Links: %-5h" - " Device type: %t,%T\n" - "Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n" - "Access: %x\n" - "Modify: %y\n" - "Change: %z\n"; - } - else - { -#ifdef FLASK_LINUX - if (secure) - format = - " File: %N\n" - " Size: %-10s\tBlocks: %-10b IO Block: %-6o %F\n" - "Device: %Dh/%dd\tInode: %-10i Links: %-5h\n" - "Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n" - " SID: %-14S S_Context: %C\n" - "Access: %x\n" - "Modify: %y\n" - "Change: %z\n"; - else -#endif - format = - " File: %N\n" - " Size: %-10s\tBlocks: %-10b IO Block: %-6o %F\n" - "Device: %Dh/%dd\tInode: %-10i Links: %-5h\n" - "Access: (%04a/%10.10A) Uid: (%5u/%8U) Gid: (%5g/%8G)\n" - "Access: %x\n" - "Modify: %y\n" - "Change: %z\n"; - } - } - } - print_it(format, filename, print_stat, &statbuf, sid); -} - -void -usage (char *progname) -{ - fprintf (stderr, "Usage: %s [-l] [-f] [-s] [-v] [-h] [-t] [-c format] file1 [file2 ...]\n", progname); - exit (1); -} - -void verbose_usage(char *progname) -{ - fprintf(stderr, "Usage: %s [-l] [-f] [-s] [-v] [-h] [-t] [-c format] file1 [file2 ...]\n", progname); - fprintf(stderr, "\tformat interpreted sequences for file stat are:\n"); - fprintf(stderr, "\t\t%%n - File name\n"); - fprintf(stderr, "\t\t%%N - Quoted File name with dereference if symbolic link\n"); - fprintf(stderr, "\t\t%%d - Device number in decimal\n"); - fprintf(stderr, "\t\t%%D - Device number in hex\n"); - fprintf(stderr, "\t\t%%i - Inode number\n"); - fprintf(stderr, "\t\t%%a - Access rights in octal\n"); - fprintf(stderr, "\t\t%%A - Access rights in human readable form\n"); - fprintf(stderr, "\t\t%%f - raw mode in hex\n"); - fprintf(stderr, "\t\t%%F - File type\n"); - fprintf(stderr, "\t\t%%h - Number of hard links\n"); - fprintf(stderr, "\t\t%%u - User Id of owner\n"); - fprintf(stderr, "\t\t%%U - User name of owner\n"); - fprintf(stderr, "\t\t%%g - Group Id of owner\n"); - fprintf(stderr, "\t\t%%G - Group name of owner\n"); - fprintf(stderr, "\t\t%%t - Major device type in hex\n"); - fprintf(stderr, "\t\t%%T - Minor device type in hex\n"); - fprintf(stderr, "\t\t%%s - Total size, in bytes\n"); - fprintf(stderr, "\t\t%%b - Number of blocks allocated\n"); - fprintf(stderr, "\t\t%%o - IO block size\n"); - fprintf(stderr, "\t\t%%x - Time of last access\n"); - fprintf(stderr, "\t\t%%X - Time of last access as seconds since Epoch\n"); - fprintf(stderr, "\t\t%%y - Time of last modification\n"); - fprintf(stderr, "\t\t%%Y - Time of last modification as seconds since Epoch\n"); - fprintf(stderr, "\t\t%%z - Time of last change\n"); - fprintf(stderr, "\t\t%%Z - Time of last change as seconds since Epoch\n"); - fprintf(stderr, "\t\t%%S - Security ID in SE-Linux\n"); - fprintf(stderr, "\t\t%%C - Security context in SE-Linux\n"); - fprintf(stderr, "\tformat interpreted sequences for filesystem stat are:\n"); - fprintf(stderr, "\t\t%%n - File name\n"); - fprintf(stderr, "\t\t%%i - File System id in hex\n"); - fprintf(stderr, "\t\t%%l - Maximum length of filenames\n"); - fprintf(stderr, "\t\t%%t - Type in hex\n"); - fprintf(stderr, "\t\t%%T - Type in human readable form\n"); - fprintf(stderr, "\t\t%%b - Total data blocks in file system\n"); - fprintf(stderr, "\t\t%%f - Free blocks in file system\n"); - fprintf(stderr, "\t\t%%a - Free blocks available to non-superuser\n"); - fprintf(stderr, "\t\t%%s - Optimal transfer block size\n"); - fprintf(stderr, "\t\t%%c - Total file nodes in file system\n"); - fprintf(stderr, "\t\t%%S - Security ID in SE-Linux\n"); - fprintf(stderr, "\t\t%%C - Security context in SE-Linux\n"); - fprintf(stderr, "\t\t%%d - Free file nodes in file system\n"); - exit(1); -} - - -int -main (int argc, char *argv[]) -{ - int c, i, link = 0, fs = 0, terse = 0, secure = 0; - char *format = NULL; - - while ((c = getopt (argc, argv, "lsfvthc:")) != EOF) - { - switch (c) - { - case 'l': - link = 1; - break; - case 's': - secure = 1; - break; - case 'f': - fs = 1; - break; - case 't': - terse = 1; - break; - case 'c': - format = optarg; - break; - case 'h': - printf ("stat version: 3.0\n"); - verbose_usage(argv[0]); - break; - case 'v': - printf ("stat version: 3.0\n"); - default: - usage (argv[0]); - } - } - if (argc == optind) - usage (argv[0]); - - for (i = optind; i < argc; i++) - (fs == 0) ? do_stat (argv[i], link, terse, secure, format) : - do_statfs (argv[i], terse, secure, format); - - return (0); -} diff --git a/lustre/tests/stat_fs.h b/lustre/tests/stat_fs.h deleted file mode 100644 index c5fa3b4d261a777b17f3fbd6eb01de003d77504d..0000000000000000000000000000000000000000 --- a/lustre/tests/stat_fs.h +++ /dev/null @@ -1,37 +0,0 @@ -/* define the magic numbers as given by statfs(2) */ -/* please send additions to meskes@debian.org */ - -#if defined(__linux__) -#define S_MAGIC_AFFS 0xADFF -#define S_MAGIC_EXT 0x137D -#define S_MAGIC_EXT2_OLD 0xEF51 -#define S_MAGIC_EXT2 0xEF53 -#define S_MAGIC_HPFS 0xF995E849 -#define S_MAGIC_ISOFS 0x9660 -#define S_MAGIC_ISOFS_WIN 0x4000 -#define S_MAGIC_ISOFS_R_WIN 0x4004 -#define S_MAGIC_MINIX 0x137F -#define S_MAGIC_MINIX_30 0x138F -#define S_MAGIC_MINIX_V2 0x2468 -#define S_MAGIC_MINIX_V2_30 0x2478 -#define S_MAGIC_MSDOS 0x4d44 -#define S_MAGIC_FAT 0x4006 -#define S_MAGIC_NCP 0x564c -#define S_MAGIC_NFS 0x6969 -#define S_MAGIC_PROC 0x9fa0 -#define S_MAGIC_SMB 0x517B -#define S_MAGIC_XENIX 0x012FF7B4 -#define S_MAGIC_SYSV4 0x012FF7B5 -#define S_MAGIC_SYSV2 0x012FF7B6 -#define S_MAGIC_COH 0x012FF7B7 -#define S_MAGIC_UFS 0x00011954 -#define S_MAGIC_XIAFS 0x012FD16D -#define S_MAGIC_NTFS 0x5346544e -#define S_MAGIC_TMPFS 0x1021994 -#define S_MAGIC_REISERFS 0x52654973 -#define S_MAGIC_CRAMFS 0x28cd3d45 -#define S_MAGIC_ROMFS 0x7275 -#define S_MAGIC_LUSTRE 0x0BD00BD0 -#elif defined (__GNU__) -#include <hurd/hurd_types.h> -#endif