Lines Matching refs:opts

776 static int zloop_init_zone(struct zloop_device *zlo, struct zloop_options *opts,  in zloop_init_zone()  argument
791 if (!opts->buffered_io) in zloop_init_zone()
883 static int zloop_ctl_add(struct zloop_options *opts) in zloop_ctl_add() argument
888 .chunk_sectors = opts->zone_size, in zloop_ctl_add()
898 nr_zones = opts->capacity >> ilog2(opts->zone_size); in zloop_ctl_add()
899 if (opts->nr_conv_zones >= nr_zones) { in zloop_ctl_add()
901 opts->nr_conv_zones); in zloop_ctl_add()
917 if (opts->id >= 0) { in zloop_ctl_add()
919 opts->id, opts->id + 1, GFP_KERNEL); in zloop_ctl_add()
930 zlo->zone_shift = ilog2(opts->zone_size); in zloop_ctl_add()
931 zlo->zone_size = opts->zone_size; in zloop_ctl_add()
932 if (opts->zone_capacity) in zloop_ctl_add()
933 zlo->zone_capacity = opts->zone_capacity; in zloop_ctl_add()
937 zlo->nr_conv_zones = opts->nr_conv_zones; in zloop_ctl_add()
938 zlo->buffered_io = opts->buffered_io; in zloop_ctl_add()
941 opts->nr_queues * opts->queue_depth, zlo->id); in zloop_ctl_add()
947 if (opts->base_dir) in zloop_ctl_add()
948 zlo->base_dir = kstrdup(opts->base_dir, GFP_KERNEL); in zloop_ctl_add()
972 ret = zloop_init_zone(zlo, opts, i, restore); in zloop_ctl_add()
981 zlo->tag_set.nr_hw_queues = opts->nr_queues; in zloop_ctl_add()
982 zlo->tag_set.queue_depth = opts->queue_depth; in zloop_ctl_add()
1055 static int zloop_ctl_remove(struct zloop_options *opts) in zloop_ctl_remove() argument
1060 if (!(opts->mask & ZLOOP_OPT_ID)) { in zloop_ctl_remove()
1069 zlo = idr_find(&zloop_index_idr, opts->id); in zloop_ctl_remove()
1086 pr_info("Removed device %d\n", opts->id); in zloop_ctl_remove()
1093 static int zloop_parse_options(struct zloop_options *opts, const char *buf) in zloop_parse_options() argument
1101 opts->mask = 0; in zloop_parse_options()
1102 opts->id = ZLOOP_DEF_ID; in zloop_parse_options()
1103 opts->capacity = ZLOOP_DEF_ZONE_SIZE * ZLOOP_DEF_NR_ZONES; in zloop_parse_options()
1104 opts->zone_size = ZLOOP_DEF_ZONE_SIZE; in zloop_parse_options()
1105 opts->nr_conv_zones = ZLOOP_DEF_NR_CONV_ZONES; in zloop_parse_options()
1106 opts->nr_queues = ZLOOP_DEF_NR_QUEUES; in zloop_parse_options()
1107 opts->queue_depth = ZLOOP_DEF_QUEUE_DEPTH; in zloop_parse_options()
1108 opts->buffered_io = ZLOOP_DEF_BUFFERED_IO; in zloop_parse_options()
1127 opts->mask |= token; in zloop_parse_options()
1130 if (match_int(args, &opts->id)) { in zloop_parse_options()
1145 opts->capacity = in zloop_parse_options()
1159 opts->zone_size = in zloop_parse_options()
1172 opts->zone_capacity = in zloop_parse_options()
1180 opts->nr_conv_zones = token; in zloop_parse_options()
1188 kfree(opts->base_dir); in zloop_parse_options()
1189 opts->base_dir = p; in zloop_parse_options()
1201 opts->nr_queues = min(token, num_online_cpus()); in zloop_parse_options()
1213 opts->queue_depth = token; in zloop_parse_options()
1216 opts->buffered_io = true; in zloop_parse_options()
1227 if (opts->capacity <= opts->zone_size) { in zloop_parse_options()
1232 if (opts->zone_capacity > opts->zone_size) { in zloop_parse_options()
1260 struct zloop_options opts = { }; in zloop_ctl_write() local
1288 ret = zloop_parse_options(&opts, opts_buf); in zloop_ctl_write()
1296 ret = zloop_ctl_add(&opts); in zloop_ctl_write()
1299 ret = zloop_ctl_remove(&opts); in zloop_ctl_write()
1308 kfree(opts.base_dir); in zloop_ctl_write()