From b9445aaad60c8443c07d3fc37429a4e01cb3063d Mon Sep 17 00:00:00 2001 From: kalpak Date: Sat, 5 Jul 2008 10:50:48 +0000 Subject: [PATCH] b=13128 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 | 6 ++++-- lustre/utils/lfs.c | 24 ++++++++++++++++-------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lustre/doc/lfs.1 b/lustre/doc/lfs.1 index c8ba802..8243ff3 100644 --- a/lustre/doc/lfs.1 +++ b/lustre/doc/lfs.1 @@ -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 ] + \fB[--print|-p] \fB[--print0|-P] [--obd|-O ] \fB[[!] --size|-S [-+]N[kMGTPE]] [--type |-t {bcdflpsD}] + \fB[[!] --gid|-g N] [[!] --group|-G ] + \fB[[!] --uid|-u N] [[!] --user|-U ] \fB\fR .br .B lfs getstripe [--obd|-O ] [--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). diff --git a/lustre/utils/lfs.c b/lustre/utils/lfs.c index 6d51e85..1d034b2 100644 --- a/lustre/utils/lfs.c +++ b/lustre/utils/lfs.c @@ -503,10 +503,14 @@ static int lfs_find(int argc, char **argv) break; case 'G': new_fashion = 1; - ret = name2id(¶m.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(¶m.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(¶m.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(¶m.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; -- 1.8.3.1