diff options
| author | tkusumi <tkusumi@NetBSD.org> | 2019-12-12 16:28:24 +0000 |
|---|---|---|
| committer | tkusumi <tkusumi@NetBSD.org> | 2019-12-12 16:28:24 +0000 |
| commit | f4d889641c2e4ce572c3d1bf01581cc30cb8e537 (patch) | |
| tree | 39c606b7b983b7019d1488f700e2382b023f2fad /sys/dev/dm/dm_target_snapshot.c | |
| parent | 1a169b36b03c3b7135058de274a8a107e2e98b83 (diff) | |
dm: Make target's ->init() take parsed argc and argv
This gets rid of the same parser code in each target using strsep(3).
taken-from: DragonFlyBSD
Diffstat (limited to 'sys/dev/dm/dm_target_snapshot.c')
| -rw-r--r-- | sys/dev/dm/dm_target_snapshot.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/sys/dev/dm/dm_target_snapshot.c b/sys/dev/dm/dm_target_snapshot.c index 78770c14bf3..de49a6f1a86 100644 --- a/sys/dev/dm/dm_target_snapshot.c +++ b/sys/dev/dm/dm_target_snapshot.c @@ -1,4 +1,4 @@ -/* $NetBSD: dm_target_snapshot.c,v 1.29 2019/12/08 14:59:42 tkusumi Exp $ */ +/* $NetBSD: dm_target_snapshot.c,v 1.30 2019/12/12 16:28:24 tkusumi Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dm_target_snapshot.c,v 1.29 2019/12/08 14:59:42 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target_snapshot.c,v 1.30 2019/12/12 16:28:24 tkusumi Exp $"); /* * 1. Suspend my_data to temporarily stop any I/O while the snapshot is being @@ -87,7 +87,7 @@ __KERNEL_RCSID(0, "$NetBSD: dm_target_snapshot.c,v 1.29 2019/12/08 14:59:42 tkus #include "dm.h" /* dm_target_snapshot.c */ -int dm_target_snapshot_init(dm_table_entry_t *, char *); +int dm_target_snapshot_init(dm_table_entry_t *, int, char **); char *dm_target_snapshot_status(void *); int dm_target_snapshot_strategy(dm_table_entry_t *, struct buf *); int dm_target_snapshot_sync(dm_table_entry_t *); @@ -96,7 +96,7 @@ int dm_target_snapshot_destroy(dm_table_entry_t *); int dm_target_snapshot_upcall(dm_table_entry_t *, struct buf *); /* dm snapshot origin driver */ -int dm_target_snapshot_orig_init(dm_table_entry_t *, char *); +int dm_target_snapshot_orig_init(dm_table_entry_t *, int, char **); char *dm_target_snapshot_orig_status(void *); int dm_target_snapshot_orig_strategy(dm_table_entry_t *, struct buf *); int dm_target_snapshot_orig_sync(dm_table_entry_t *); @@ -210,26 +210,13 @@ dm_target_snapshot_modcmd(modcmd_t cmd, void *arg) * snapshot_origin device, cow device, persistent flag, chunk size */ int -dm_target_snapshot_init(dm_table_entry_t *table_en, char *params) +dm_target_snapshot_init(dm_table_entry_t *table_en, int argc, char **argv) { dm_target_snapshot_config_t *tsc; dm_pdev_t *dmp_snap, *dmp_cow; - char **ap, *argv[5]; dmp_cow = NULL; - if (params == NULL) - return EINVAL; - /* - * Parse a string, containing tokens delimited by white space, - * into an argument vector - */ - for (ap = argv; ap < &argv[4] && - (*ap = strsep(¶ms, " \t")) != NULL;) { - if (**ap != '\0') - ap++; - } - printf("Snapshot target init function called!!\n"); printf("Snapshotted device: %s, cow device %s,\n\t persistent flag: %s, " "chunk size: %s\n", argv[0], argv[1], argv[2], argv[3]); @@ -409,19 +396,16 @@ dm_target_snapshot_upcall(dm_table_entry_t *table_en, struct buf *bp) * argv: /dev/mapper/my_data_real */ int -dm_target_snapshot_orig_init(dm_table_entry_t *table_en, char *params) +dm_target_snapshot_orig_init(dm_table_entry_t *table_en, int argc, char **argv) { dm_target_snapshot_origin_config_t *tsoc; dm_pdev_t *dmp_real; - if (params == NULL) - return EINVAL; - printf("Snapshot origin target init function called!!\n"); - printf("Parent device: %s\n", params); + printf("Parent device: %s\n", argv[0]); /* Insert snap device to global pdev list */ - if ((dmp_real = dm_pdev_insert(params)) == NULL) + if ((dmp_real = dm_pdev_insert(argv[0])) == NULL) return ENOENT; tsoc = kmem_alloc(sizeof(dm_target_snapshot_origin_config_t), KM_SLEEP); |
