* [PATCH] Fix xfs_quota command handling.
@ 2007-05-31 4:22 Utako Kusaka
2007-06-11 9:30 ` Donald Douwsma
0 siblings, 1 reply; 2+ messages in thread
From: Utako Kusaka @ 2007-05-31 4:22 UTC (permalink / raw)
To: xfs
Hi,
This is my last patch for xfs_quota, maybe.
When path argument is not specified, xfs_quota executes commands repeatedly
to the number of mounted XFS file systems.
As a result, I get the same command report many times.
This patch implements the similar command loop operation to xfs_db.
# ./xfs_quota -c "print" -c "help"
Filesystem Pathname
/home/utako/mpnt /dev/sda6 (uquota)
/home/utako/mpnt/mpnt2 /dev/loop0 (uquota)
/home/utako/mpnt/pjq /dev/sda6 (project 42, logfiles)
/home/utako/mpnt/pjq2 /dev/sda6 (project 43, logfiles2)
Filesystem Pathname
/home/utako/mpnt /dev/sda6 (uquota)
/home/utako/mpnt/mpnt2 /dev/loop0 (uquota)
/home/utako/mpnt/pjq /dev/sda6 (project 42, logfiles)
/home/utako/mpnt/pjq2 /dev/sda6 (project 43, logfiles2)
df [-bir] [-hn] [-f file] -- show free and used counts for blocks and inodes
help [command] -- help for one or all commands
print -- list known mount points and projects
quit -- exit the program
quota [-bir] [-gpu] [-hnv] [-f file] [id|name]... -- show usage and limits
Use 'help commandname' for extended help.
df [-bir] [-hn] [-f file] -- show free and used counts for blocks and inodes
help [command] -- help for one or all commands
print -- list known mount points and projects
quit -- exit the program
quota [-bir] [-gpu] [-hnv] [-f file] [id|name]... -- show usage and limits
Use 'help commandname' for extended help.
--
Utako Kusaka
Signed-off-by: Utako Kusaka <utako@tnes.nec.co.jp>
---
--- xfsprogs-2.8.20/quota/init.orig 2007-05-16 11:38:39.000000000 +0900
+++ xfsprogs-2.8.20/quota/init.c 2007-05-30 11:16:56.000000000 +0900
@@ -25,6 +25,8 @@ char *progname;
int exitcode;
int expert;
+static char **cmdline; /* table of user commands */
+static int ncmdline; /* number of entries in command table */
static char **projopts; /* table of project names (cmdline) */
static int nprojopts; /* number of entries in name table. */
@@ -74,24 +76,6 @@ init_commands(void)
state_init();
}
-static int
-init_args_command(
- int index)
-{
- if (index >= fs_count)
- return 0;
-
- do {
- fs_path = &fs_table[index++];
- } while ((fs_path->fs_flags & FS_PROJECT_PATH) && index < fs_count);
-
- if (fs_path->fs_flags & FS_PROJECT_PATH)
- return 0;
- if (index > fs_count)
- return 0;
- return index;
-}
-
static void
init(
int argc,
@@ -107,7 +91,12 @@ init(
while ((c = getopt(argc, argv, "c:d:D:P:p:t:xV")) != EOF) {
switch (c) {
case 'c': /* commands */
- add_user_command(optarg);
+ cmdline = realloc(cmdline, (ncmdline+1)*sizeof(char*));
+ if (!cmdline) {
+ perror("realloc");
+ exit(1);
+ }
+ cmdline[ncmdline++] = optarg;
break;
case 'd':
add_project_opt(optarg);
@@ -150,7 +139,6 @@ init(
free(projopts);
init_commands();
- add_args_command(init_args_command);
}
int
@@ -158,7 +146,32 @@ main(
int argc,
char **argv)
{
+ int c, i, done = 0;
+ char *input;
+ char **v;
+
init(argc, argv);
- command_loop();
+
+ for (i = 0; !done && i < ncmdline; i++) {
+ v = breakline(cmdline[i], &c);
+ if (c)
+ done = command(c, v);
+ free(v);
+ }
+ if (cmdline) {
+ free(cmdline);
+ return exitcode;
+ }
+
+ while (!done) {
+ if ((input = fetchline()) == NULL)
+ break;
+ v = breakline(input, &c);
+ if (c)
+ done = command(c, v);
+ doneline(input, v);
+ }
+
+
return exitcode;
}
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH] Fix xfs_quota command handling.
2007-05-31 4:22 [PATCH] Fix xfs_quota command handling Utako Kusaka
@ 2007-06-11 9:30 ` Donald Douwsma
0 siblings, 0 replies; 2+ messages in thread
From: Donald Douwsma @ 2007-06-11 9:30 UTC (permalink / raw)
To: Utako Kusaka; +Cc: xfs-oss
Utako Kusaka wrote:
> Hi,
>
> This is my last patch for xfs_quota, maybe.
Thanks all your work on quotas, the xfs quota code is in much better
shape thanks to your efforts.
> When path argument is not specified, xfs_quota executes commands repeatedly
> to the number of mounted XFS file systems.
> As a result, I get the same command report many times.
> This patch implements the similar command loop operation to xfs_db.
This bug has been around for some time. I've applied your patch and
confirmed it fixes the problem.
When verifying it with the xfs qa tools I found that the quota test (xfstest/050)
fails with expected output problems. The code in test 050 always
passes the mount point in so your change should have no effect on it.
I suspect this is a failure in the qa script itself.
Sorry for the delay in picking up your last five patches.
I'll get them checked in as soon as I resolve our qa problem.
Donald
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-06-11 9:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-31 4:22 [PATCH] Fix xfs_quota command handling Utako Kusaka
2007-06-11 9:30 ` Donald Douwsma
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox