static int state_f( int argc, char **argv) { FILE *fp = NULL; char *fname = NULL; int c, flags = 0, type = 0; while ((c = getopt(argc, argv, "af:gpuv")) != EOF) { switch (c) { case 'a': flags |= ALL_MOUNTS_FLAG; break; case 'f': fname = optarg; break; case 'g': type |= XFS_GROUP_QUOTA; break; case 'p': type |= XFS_PROJ_QUOTA; break; case 'u': type |= XFS_USER_QUOTA; break; case 'v': flags |= VERBOSE_FLAG; break; default: return command_usage(&state_cmd); } } if (argc != optind) return command_usage(&state_cmd); if ((fp = fopen_write_secure(fname)) == NULL) return 0; if (!type) type = XFS_USER_QUOTA | XFS_GROUP_QUOTA | XFS_PROJ_QUOTA; if (flags & ALL_MOUNTS_FLAG) state_quotafile(fp, type, NULL, flags); else if (fs_path && fs_path->fs_flags & FS_MOUNT_POINT) state_quotafile(fp, type, fs_path->fs_dir, flags); if (fname) fclose(fp); return 0; }
static int dump_f( int argc, char **argv) { FILE *fp; char *fname = NULL; uint lower = 0, upper = 0; int c, type = XFS_USER_QUOTA; while ((c = getopt(argc, argv, "f:gpuL:U:")) != EOF) { switch(c) { case 'f': fname = optarg; break; case 'g': type = XFS_GROUP_QUOTA; break; case 'p': type = XFS_PROJ_QUOTA; break; case 'u': type = XFS_USER_QUOTA; break; case 'L': lower = (uint)atoi(optarg); break; case 'U': upper = (uint)atoi(optarg); break; default: return command_usage(&dump_cmd); } } if (argc != optind) return command_usage(&dump_cmd); if ((fp = fopen_write_secure(fname)) == NULL) return 0; dump_limits_any_type(fp, type, fs_path->fs_dir, lower, upper); if (fname) fclose(fp); return 0; }