Example #1
0
static int pb_complete(int argc, char **argv)
{
    int i, ret, fd;

    while ((i = getopt(argc, argv, "d:m:")) != EOF) {
        switch (i) {
        case 'd':
            device = optarg;
            break;
        case 'm':
            mount_point = optarg;
            break;
        default:
            usage_complete();
            return SYSEXIT_PARAM;
        }
    }

    argc -= optind;
    argv += optind;

    GET_DD(argc, argv);
    if (argc != 0 || fill_opts()) {
        usage_complete();
        return SYSEXIT_PARAM;
    }

    ret = get_balloon(mount_point, NULL, &fd);
    if (ret)
        return ret;

    return ploop_balloon_complete(device);
}
Example #2
0
static int pb_change(int argc, char **argv)
{
    int    fd;
    int    i, ret;
    off_t  new_size = 0;
    int    new_size_set = 0;

    while ((i = getopt(argc, argv, "s:d:m:")) != EOF) {
        switch (i) {
        case 's':
            /* NB: currently, new_size is in 'sector' units */
            if (parse_size(optarg, &new_size, "-s")) {
                usage_change();
                return SYSEXIT_PARAM;
            }
            new_size_set++;
            break;
        case 'd':
            device = optarg;
            break;
        case 'm':
            mount_point = optarg;
            break;
        default:
            usage_change();
            return SYSEXIT_PARAM;
        }
    }

    argc -= optind;
    argv += optind;

    GET_DD(argc, argv);
    if (argc != 0 || !new_size_set || fill_opts()) {
        usage_change();
        return SYSEXIT_PARAM;
    }
    ret = get_balloon(mount_point, NULL, &fd);
    if (ret)
        return ret;

    return ploop_balloon_change_size(device, fd, new_size);
}
Example #3
0
static int pb_check_and_repair(int argc, char **argv, int repair)
{
    int i;

    while ((i = getopt(argc, argv, "fd:m:")) != EOF) {
        switch (i) {
        case 'f':
            force = 1;
            break;
        case 'd':
            device = optarg;
            break;
        case 'm':
            mount_point = optarg;
            break;
        default:
            if (repair)
                usage_repair();
            else
                usage_check();
            return SYSEXIT_PARAM;
        }
    }

    argc -= optind;
    argv += optind;

    GET_DD(argc, argv);
    if (argc != 0 || fill_opts()) {
        if (repair)
            usage_repair();
        else
            usage_check();
        return SYSEXIT_PARAM;
    }

    return ploop_balloon_check_and_repair(device, mount_point, repair);

}
Example #4
0
static int pb_status(int argc, char **argv)
{
    int i, ret;
    __u32 state;

    while ((i = getopt(argc, argv, "fd:m:")) != EOF) {
        switch (i) {
        case 'f':
            force = 1;
            break;
        case 'd':
            device = optarg;
            break;
        case 'm':
            mount_point = optarg;
            break;
        default:
            usage_status();
            return SYSEXIT_PARAM;
        }
    }

    argc -= optind;
    argv += optind;

    GET_DD(argc, argv);
    if (argc != 0 || fill_opts()) {
        usage_status();
        return SYSEXIT_PARAM;
    }

    ret = ploop_balloon_get_state(device, &state);
    if (ret)
        return ret;

    fprintf(stdout, "Current state of in-kernel maintenance: %s\n",
            mntn2str(state));
    return 0;
}
Example #5
0
int		check_opts(char **av, t_gen *gen)
{
  int		verif;
  char		*param;

  get_next_params(av, 1);
  for (verif = 0; (param = get_next_params(av, 0)); )
    {
      if (param[0] == '-')
	fill_opts(param + 1, gen->opts);
      else
	{
	  ++verif;
	  if (test_before_add(param))
	    gen->path[(gen->nb_path)++] = my_strdup(param);
	}
    }
  order_args(gen);
  if (!gen->nb_path && verif)
    return (0);
  return (1);
}
Example #6
0
static int pb_clear(int argc, char **argv)
{
    int i, ret;
    int fd2;

    while ((i = getopt(argc, argv, "d:m:")) != EOF) {
        switch (i) {
        case 'd':
            device = optarg;
            break;
        case 'm':
            mount_point = optarg;
            break;
        default:
            usage_clear();
            return SYSEXIT_PARAM;
        }
    }

    argc -= optind;
    argv += optind;

    GET_DD(argc, argv);
    if (argc != 0 || fill_opts()) {
        usage_clear();
        return SYSEXIT_PARAM;
    }

    ret = get_balloon(mount_point, NULL, &fd2);
    if (ret)
        return ret;

    ret = ploop_balloon_clear_state(device);
    if (ret)
        return ret;
    fprintf(stdout, "Current state of in-kernel maintenance is OFF now\n");
    return 0;
}
Example #7
0
static int pb_show(int argc, char **argv)
{
    int i, ret;
    struct stat st;

    while ((i = getopt(argc, argv, "fd:m:")) != EOF) {
        switch (i) {
        case 'f':
            force = 1;
            break;
        case 'd':
            device = optarg;
            break;
        case 'm':
            mount_point = optarg;
            break;
        default:
            usage_show();
            return SYSEXIT_PARAM;
        }
    }

    argc -= optind;
    argv += optind;

    GET_DD(argc, argv);
    if (argc != 0 || fill_opts()) {
        usage_show();
        return SYSEXIT_PARAM;
    }

    ret = get_balloon(mount_point, &st, NULL);
    if (ret)
        return ret;
    fprintf(stdout, "Current size of hidden balloon is %llu bytes\n",
            (unsigned long long) st.st_size);
    return 0;
}