#include <dirent.h>
#include <time.h>
#include <ctype.h>
+#ifdef HAVE_SYS_QUOTA_H
#include <sys/quota.h>
+#endif
#include <lnet/api-support.h>
#include <lnet/lnetctl.h>
static int lfs_df(int argc, char **argv);
static int lfs_check(int argc, char **argv);
static int lfs_catinfo(int argc, char **argv);
-#ifdef HAVE_QUOTA_SUPPORT
+#ifdef HAVE_SYS_QUOTA_H
static int lfs_quotachown(int argc, char **argv);
static int lfs_quotacheck(int argc, char **argv);
static int lfs_quotaon(int argc, char **argv);
"report filesystem disk space usage or inodes usage"
"of each MDS/OSD.\n"
"Usage: df [-i] [-h] [path]"},
-#ifdef HAVE_QUOTA_SUPPORT
+#ifdef HAVE_SYS_QUOTA_H
{"quotachown",lfs_quotachown, 0,
"Change files' owner or group on the specified filesystem.\n"
"usage: quotachown [-i] <filesystem>\n"
return res;
}
+#define USER 0
+#define GROUP 1
+
static int name2id(unsigned int *id, char *name, int type)
{
- if (type == USRQUOTA) {
+ if (type == USER) {
struct passwd *entry;
if (!(entry = getpwnam(name))) {
static int id2name(char **name, unsigned int id, int type)
{
- if (type == USRQUOTA) {
+ if (type == USER) {
struct passwd *entry;
if (!(entry = getpwuid(id))) {
new_fashion = 1;
param.gid = strtol(optarg, &endptr, 10);
if (optarg == endptr) {
- ret = name2id(¶m.gid, optarg, GRPQUOTA);
+ ret = name2id(¶m.gid, optarg, GROUP);
if (ret != 0) {
fprintf(stderr, "Group/GID: %s cannot "
"be found.\n", optarg);
new_fashion = 1;
param.uid = strtol(optarg, &endptr, 10);
if (optarg == endptr) {
- ret = name2id(¶m.uid, optarg, USRQUOTA);
+ ret = name2id(¶m.uid, optarg, USER);
if (ret != 0) {
fprintf(stderr, "User/UID: %s cannot "
"be found.\n", optarg);
return rc;
}
-#ifdef HAVE_QUOTA_SUPPORT
+#ifdef HAVE_SYS_QUOTA_H
static int lfs_quotachown(int argc, char **argv)
{
" be available in future releases!\n");
qctl.qc_type = !strcmp(argv[1], "-u") ? USRQUOTA : GRPQUOTA;
- rc = name2id(&qctl.qc_id, argv[2], qctl.qc_type);
+ rc = name2id(&qctl.qc_id, argv[2],
+ (qctl.qc_type == USRQUOTA) ? USER : GROUP);
if (rc) {
fprintf(stderr, "error: unknown id %s\n", optarg);
return CMD_HELP;
return CMD_HELP;
}
qctl.qc_type = (c == 'u') ? USRQUOTA : GRPQUOTA;
- rc = name2id(&qctl.qc_id, optarg, qctl.qc_type);
+ rc = name2id(&qctl.qc_id, optarg,
+ (qctl.qc_type == USRQUOTA) ? USER : GROUP);
if (rc) {
fprintf(stderr, "error: unknown id %s\n",
optarg);
qctl.qc_type = GRPQUOTA;
qctl.qc_id = getegid();
}
- rc = id2name(&name, qctl.qc_id, qctl.qc_type);
+ rc = id2name(&name, qctl.qc_id,
+ (qctl.qc_type == USRQUOTA) ? USER : GROUP);
if (rc)
name = "<unknown>";
} else if (qctl.qc_cmd == LUSTRE_Q_GETQUOTA) {
}
name = argv[optind++];
- rc = name2id(&qctl.qc_id, name, qctl.qc_type);
+ rc = name2id(&qctl.qc_id, name,
+ (qctl.qc_type == USRQUOTA) ? USER : GROUP);
if (rc) {
fprintf(stderr,"error: can't find id for name %s: %s\n",
name, strerror(errno));
return 0;
}
-#endif /* HAVE_QUOTA_SUPPORT */
+#endif /* HAVE_SYS_QUOTA_H! */
int main(int argc, char **argv)
{