Whamcloud - gitweb
b=13128
authorkalpak <kalpak>
Sat, 5 Jul 2008 10:50:48 +0000 (10:50 +0000)
committerkalpak <kalpak>
Sat, 5 Jul 2008 10:50:48 +0000 (10:50 +0000)
i=adilger
i=johann

Add uid and gid options to lfs manpage. numeric uid/gid should be accepted with -user/-group option

lustre/doc/lfs.1
lustre/utils/lfs.c

index c8ba802..8243ff3 100644 (file)
@@ -11,8 +11,10 @@ lfs \- Lustre utility to create a file with specific striping pattern, find the
 .br
 .B lfs find [[!] --atime|-A [-+]N] [[!] --mtime|-M [-+]N]
         \fB[[!] --ctime|-C [-+]N] [--maxdepth|-D N] [--name|-n pattern]
-        \fB[--print|-p] \fB[--print0|-P] [--obd|-O <uuid>]
+        \fB[--print|-p] \fB[--print0|-P] [--obd|-O <uuid[s]>]
         \fB[[!] --size|-S [-+]N[kMGTPE]] [--type |-t {bcdflpsD}]
+        \fB[[!] --gid|-g N] [[!] --group|-G <name>]
+        \fB[[!] --uid|-u N] [[!] --user|-U <name>]
         \fB<dirname|filename>\fR
 .br
 .B lfs getstripe [--obd|-O <uuid>] [--quiet|-q] [--verbose|-v] 
@@ -55,7 +57,7 @@ Display the status of MDS or OSTs (as specified in the command) or all the serve
 Report filesystem disk space usage or inodes usage of each MDT/OST.
 .TP
 .B find 
-To search the directory tree rooted at the given dir/file name for the files that match the given parameters: \fB--atime\fR (file was last accessed N*24 hours ago), \fB--ctime\fR (file's status was last changed N*24 hours ago), \fB--mtime\fR (file's data was last modified N*24 hours ago), \fB--obd\fR (file has an object on a specific OST), \fB--size\fR (file has size in bytes, or \fBk\fRilo-, \fBM\fRega-, \fBG\fRiga-, \fBT\fRera-, \fBP\fReta-, or \fBE\fRxabytes if a suffix is given), \fB--type\fR (file has the type: \fBb\fRlock, \fBc\fRharacter, \fBd\fRirectory, \fBp\fRipe, \fBf\fRile, sym\fBl\fRink, \fBs\fRocket, or \fBD\fRoor (Solaris)). The option \fB--maxdepth\fR allows find to decend at most N levels of directory tree. The options \fB--print\fR and \fB--print0\fR print full file name, followed by a newline or NUL character correspondingly.  Using \fB!\fR before an option negates its meaning (\fIfiles NOT matching the parameter\fR).  Using \fB+\fR before a numeric value means \fIfiles with the parameter OR MORE\fR, while \fB-\fR before a numeric value means \fIfiles with the parameter OR LESS\fR.
+To search the directory tree rooted at the given dir/file name for the files that match the given parameters: \fB--atime\fR (file was last accessed N*24 hours ago), \fB--ctime\fR (file's status was last changed N*24 hours ago), \fB--mtime\fR (file's data was last modified N*24 hours ago), \fB--obd\fR (file has an object on a specific OST or OSTs), \fB--size\fR (file has size in bytes, or \fBk\fRilo-, \fBM\fRega-, \fBG\fRiga-, \fBT\fRera-, \fBP\fReta-, or \fBE\fRxabytes if a suffix is given), \fB--type\fR (file has the type: \fBb\fRlock, \fBc\fRharacter, \fBd\fRirectory, \fBp\fRipe, \fBf\fRile, sym\fBl\fRink, \fBs\fRocket, or \fBD\fRoor (Solaris)), \fB--uid\fR (file has specific numeric user ID), \fB--user\fR (file owned by specific user, numeric user ID allowed), \fB--gid\fR (file has specific group ID), \fB--group\fR (file belongs to specific group, numeric group ID allowed). The option \fB--maxdepth\fR allows find to decend at most N levels of directory tree. The options \fB--print\fR and \fB--print0\fR print full file name, followed by a newline or NUL character correspondingly.  Using \fB!\fR before an option negates its meaning (\fIfiles NOT matching the parameter\fR).  Using \fB+\fR before a numeric value means \fIfiles with the parameter OR MORE\fR, while \fB-\fR before a numeric value means \fIfiles with the parameter OR LESS\fR.
 .TP
 .B getstripe
 To list the striping info for a given filename or files in a directory, optionally recursively, for all files in a directory tree: \fB--quiet\fR (don't print object IDs), \fB--verbose\fR (print striping parameters), \fB--recursive\fR (recurse into subdirectories).
index 6d51e85..1d034b2 100644 (file)
@@ -503,10 +503,14 @@ static int lfs_find(int argc, char **argv)
                         break;
                 case 'G':
                         new_fashion = 1;
-                        ret = name2id(&param.gid, optarg, GRPQUOTA);
-                        if (ret != 0) {
-                                fprintf(stderr, "Group: %s cannot be found.\n", optarg);
-                                return -1;
+                        param.gid = strtol(optarg, &endptr, 10);
+                        if (optarg == endptr) {
+                               ret = name2id(&param.gid, optarg, GRPQUOTA);
+                               if (ret != 0) {
+                                        fprintf(stderr, "Group/GID: %s cannot "
+                                                "be found.\n", optarg);
+                                        return -1;
+                                }
                         }
                         param.exclude_gid = !!neg_opt;
                         param.check_gid = 1;
@@ -523,10 +527,14 @@ static int lfs_find(int argc, char **argv)
                         break;
                 case 'U':
                         new_fashion = 1;
-                        ret = name2id(&param.uid, optarg, USRQUOTA);
-                        if (ret != 0) {
-                                fprintf(stderr, "User: %s cannot be found.\n", optarg);
-                                return -1;
+                        param.uid = strtol(optarg, &endptr, 10);
+                        if (optarg == endptr) {
+                               ret = name2id(&param.uid, optarg, USRQUOTA);
+                               if (ret != 0) {
+                                        fprintf(stderr, "User/UID: %s cannot "
+                                                "be found.\n", optarg);
+                                        return -1;
+                                }
                         }
                         param.exclude_uid = !!neg_opt;
                         param.check_uid = 1;