Lines Matching refs:as
514 static int parse_path_selector(struct dm_arg_set *as, struct priority_group *pg, in parse_path_selector() argument
525 pst = dm_get_path_selector(dm_shift_arg(as)); in parse_path_selector()
531 r = dm_read_arg_group(_args, as, &ps_argc, &ti->error); in parse_path_selector()
537 r = pst->create(&pg->ps, ps_argc, as->argv); in parse_path_selector()
545 dm_consume_args(as, ps_argc); in parse_path_selector()
550 static struct pgpath *parse_path(struct dm_arg_set *as, struct path_selector *ps, in parse_path() argument
560 if (as->argc < 1) { in parse_path()
569 r = dm_get_device(ti, dm_shift_arg(as), dm_table_get_mode(ti->table), in parse_path()
625 r = ps->type->add_path(ps, &p->path, as->argc, as->argv, &ti->error); in parse_path()
638 static struct priority_group *parse_priority_group(struct dm_arg_set *as, in parse_priority_group() argument
651 if (as->argc < 2) { in parse_priority_group()
652 as->argc = 0; in parse_priority_group()
664 r = parse_path_selector(as, pg, ti); in parse_priority_group()
671 r = dm_read_arg(_args, as, &pg->nr_pgpaths, &ti->error); in parse_priority_group()
675 r = dm_read_arg(_args + 1, as, &nr_selector_args, &ti->error); in parse_priority_group()
684 if (as->argc < nr_args) { in parse_priority_group()
691 path_args.argv = as->argv; in parse_priority_group()
701 dm_consume_args(as, nr_args); in parse_priority_group()
711 static int parse_hw_handler(struct dm_arg_set *as, struct multipath *m) in parse_hw_handler() argument
721 if (dm_read_arg_group(_args, as, &hw_argc, &ti->error)) in parse_hw_handler()
727 m->hw_handler_name = kstrdup(dm_shift_arg(as), GFP_KERNEL); in parse_hw_handler()
734 len += strlen(as->argv[i]) + 1; in parse_hw_handler()
743 j = sprintf(p, "%s", as->argv[i]); in parse_hw_handler()
745 dm_consume_args(as, hw_argc - 1); in parse_hw_handler()
754 static int parse_features(struct dm_arg_set *as, struct multipath *m) in parse_features() argument
767 r = dm_read_arg_group(_args, as, &argc, &ti->error); in parse_features()
775 arg_name = dm_shift_arg(as); in parse_features()
790 r = dm_read_arg(_args + 1, as, &m->pg_init_retries, &ti->error); in parse_features()
797 r = dm_read_arg(_args + 2, as, &m->pg_init_delay_msecs, &ti->error); in parse_features()
820 struct dm_arg_set as; in multipath_ctr() local
824 as.argc = argc; in multipath_ctr()
825 as.argv = argv; in multipath_ctr()
833 r = parse_features(&as, m); in multipath_ctr()
837 r = parse_hw_handler(&as, m); in multipath_ctr()
841 r = dm_read_arg(_args, &as, &m->nr_priority_groups, &ti->error); in multipath_ctr()
845 r = dm_read_arg(_args + 1, &as, &next_pg_num, &ti->error); in multipath_ctr()
857 while (as.argc) { in multipath_ctr()
860 pg = parse_priority_group(&as, m); in multipath_ctr()