Fri Jan 2 11:06:17 2009 UTC ()
Properly register dm_target_* modules with module framework.


(haad)
diff -r1.4 -r1.5 src/sys/dev/dm/dm_target_error.c
diff -r1.4 -r1.5 src/sys/dev/dm/dm_target_zero.c
diff -r1.5 -r1.6 src/sys/dev/dm/dm_target_snapshot.c

cvs diff -r1.4 -r1.5 src/sys/dev/dm/dm_target_error.c (expand / switch to unified diff)

--- src/sys/dev/dm/dm_target_error.c 2008/12/21 00:59:39 1.4
+++ src/sys/dev/dm/dm_target_error.c 2009/01/02 11:06:17 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: dm_target_error.c,v 1.4 2008/12/21 00:59:39 haad Exp $ */ 1/* $NetBSD: dm_target_error.c,v 1.5 2009/01/02 11:06:17 haad Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2008 The NetBSD Foundation, Inc. 4 * Copyright (c) 2008 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Adam Hamsik. 8 * by Adam Hamsik.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -51,48 +51,53 @@ @@ -51,48 +51,53 @@
51#include <sys/module.h> 51#include <sys/module.h>
52 52
53MODULE(MODULE_CLASS_MISC, dm_target_error, NULL); 53MODULE(MODULE_CLASS_MISC, dm_target_error, NULL);
54 54
55static int 55static int
56dm_target_error_modcmd(modcmd_t cmd, void *arg) 56dm_target_error_modcmd(modcmd_t cmd, void *arg)
57{ 57{
58 dm_target_t *dmt; 58 dm_target_t *dmt;
59 int r; 59 int r;
60 dmt = NULL; 60 dmt = NULL;
61  61
62 switch (cmd) { 62 switch (cmd) {
63 case MODULE_CMD_INIT: 63 case MODULE_CMD_INIT:
 64 if ((r = module_hold("dm")) != 0)
 65 return r;
 66
64 if ((dmt = dm_target_lookup("error")) != NULL) 67 if ((dmt = dm_target_lookup("error")) != NULL)
65 return EEXIST; 68 return EEXIST;
66 69
67 dmt = dm_target_alloc("error"); 70 dmt = dm_target_alloc("error");
68  71
69 dmt->version[0] = 1; 72 dmt->version[0] = 1;
70 dmt->version[1] = 0; 73 dmt->version[1] = 0;
71 dmt->version[2] = 0; 74 dmt->version[2] = 0;
72 strlcpy(dmt->name, "error", DM_MAX_TYPE_NAME); 75 strlcpy(dmt->name, "error", DM_MAX_TYPE_NAME);
73 dmt->init = &dm_target_error_init; 76 dmt->init = &dm_target_error_init;
74 dmt->status = &dm_target_error_status; 77 dmt->status = &dm_target_error_status;
75 dmt->strategy = &dm_target_error_strategy; 78 dmt->strategy = &dm_target_error_strategy;
76 dmt->deps = &dm_target_error_deps; 79 dmt->deps = &dm_target_error_deps;
77 dmt->destroy = &dm_target_error_destroy; 80 dmt->destroy = &dm_target_error_destroy;
78 dmt->upcall = &dm_target_error_upcall; 81 dmt->upcall = &dm_target_error_upcall;
79 82
80 r = dm_target_insert(dmt); 83 r = dm_target_insert(dmt);
81  84
82 break; 85 break;
83 86
84 case MODULE_CMD_FINI: 87 case MODULE_CMD_FINI:
85 r = dm_target_rem("error"); 88 r = dm_target_rem("error");
 89 module_rele("dm"); /* release usage counter on dm module */
 90
86 break; 91 break;
87 92
88 case MODULE_CMD_STAT: 93 case MODULE_CMD_STAT:
89 return ENOTTY; 94 return ENOTTY;
90 95
91 default: 96 default:
92 return ENOTTY; 97 return ENOTTY;
93 } 98 }
94 99
95 return r; 100 return r;
96} 101}
97 102
98#endif 103#endif

cvs diff -r1.4 -r1.5 src/sys/dev/dm/dm_target_zero.c (expand / switch to unified diff)

--- src/sys/dev/dm/dm_target_zero.c 2008/12/21 00:59:39 1.4
+++ src/sys/dev/dm/dm_target_zero.c 2009/01/02 11:06:17 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: dm_target_zero.c,v 1.4 2008/12/21 00:59:39 haad Exp $ */ 1/* $NetBSD: dm_target_zero.c,v 1.5 2009/01/02 11:06:17 haad Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2008 The NetBSD Foundation, Inc. 4 * Copyright (c) 2008 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Adam Hamsik. 8 * by Adam Hamsik.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -52,47 +52,52 @@ @@ -52,47 +52,52 @@
52#include <sys/module.h> 52#include <sys/module.h>
53 53
54MODULE(MODULE_CLASS_MISC, dm_target_zero, NULL); 54MODULE(MODULE_CLASS_MISC, dm_target_zero, NULL);
55 55
56static int 56static int
57dm_target_zero_modcmd(modcmd_t cmd, void *arg) 57dm_target_zero_modcmd(modcmd_t cmd, void *arg)
58{ 58{
59 dm_target_t *dmt; 59 dm_target_t *dmt;
60 int r; 60 int r;
61 dmt = NULL; 61 dmt = NULL;
62  62
63 switch (cmd) { 63 switch (cmd) {
64 case MODULE_CMD_INIT: 64 case MODULE_CMD_INIT:
 65 if ((r = module_hold("dm")) != 0)
 66 return r;
 67
65 if ((dmt = dm_target_lookup("zero")) != NULL) 68 if ((dmt = dm_target_lookup("zero")) != NULL)
66 return EEXIST; 69 return EEXIST;
67 70
68 dmt = dm_target_alloc("zero"); 71 dmt = dm_target_alloc("zero");
69  72
70 dmt->version[0] = 1; 73 dmt->version[0] = 1;
71 dmt->version[1] = 0; 74 dmt->version[1] = 0;
72 dmt->version[2] = 0; 75 dmt->version[2] = 0;
73 strlcpy(dmt->name, "zero", DM_MAX_TYPE_NAME); 76 strlcpy(dmt->name, "zero", DM_MAX_TYPE_NAME);
74 dmt->init = &dm_target_zero_init; 77 dmt->init = &dm_target_zero_init;
75 dmt->status = &dm_target_zero_status; 78 dmt->status = &dm_target_zero_status;
76 dmt->strategy = &dm_target_zero_strategy; 79 dmt->strategy = &dm_target_zero_strategy;
77 dmt->deps = &dm_target_zero_deps; 80 dmt->deps = &dm_target_zero_deps;
78 dmt->destroy = &dm_target_zero_destroy; 81 dmt->destroy = &dm_target_zero_destroy;
79 dmt->upcall = &dm_target_zero_upcall; 82 dmt->upcall = &dm_target_zero_upcall;
80 83
81 r = dm_target_insert(dmt); 84 r = dm_target_insert(dmt);
82 break; 85 break;
83 86
84 case MODULE_CMD_FINI: 87 case MODULE_CMD_FINI:
85 r = dm_target_rem("zero"); 88 r = dm_target_rem("zero");
 89 module_rele("dm"); /* release usage counter on dm module */
 90
86 break; 91 break;
87 92
88 case MODULE_CMD_STAT: 93 case MODULE_CMD_STAT:
89 return ENOTTY; 94 return ENOTTY;
90 95
91 default: 96 default:
92 return ENOTTY; 97 return ENOTTY;
93 } 98 }
94 99
95 return r; 100 return r;
96} 101}
97 102
98#endif 103#endif

cvs diff -r1.5 -r1.6 src/sys/dev/dm/dm_target_snapshot.c (expand / switch to unified diff)

--- src/sys/dev/dm/dm_target_snapshot.c 2009/01/02 00:42:31 1.5
+++ src/sys/dev/dm/dm_target_snapshot.c 2009/01/02 11:06:17 1.6
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: dm_target_snapshot.c,v 1.5 2009/01/02 00:42:31 haad Exp $ */ 1/* $NetBSD: dm_target_snapshot.c,v 1.6 2009/01/02 11:06:17 haad Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2008 The NetBSD Foundation, Inc. 4 * Copyright (c) 2008 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Adam Hamsik. 8 * by Adam Hamsik.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -97,26 +97,29 @@ @@ -97,26 +97,29 @@
97#include <sys/module.h> 97#include <sys/module.h>
98 98
99MODULE(MODULE_CLASS_MISC, dm_target_snapshot, NULL); 99MODULE(MODULE_CLASS_MISC, dm_target_snapshot, NULL);
100 100
101static int 101static int
102dm_target_snapshot_modcmd(modcmd_t cmd, void *arg) 102dm_target_snapshot_modcmd(modcmd_t cmd, void *arg)
103{ 103{
104 dm_target_t *dmt, *dmt1; 104 dm_target_t *dmt, *dmt1;
105 int r; 105 int r;
106 dmt = NULL; 106 dmt = NULL;
107  107
108 switch (cmd) { 108 switch (cmd) {
109 case MODULE_CMD_INIT: 109 case MODULE_CMD_INIT:
 110 if ((r = module_hold("dm")) != 0)
 111 return r;
 112
110 if (((dmt = dm_target_lookup("snapshot")) != NULL) || 113 if (((dmt = dm_target_lookup("snapshot")) != NULL) ||
111 (((dmt = dm_target_lookup("snapshot-origin")) != NULL))) 114 (((dmt = dm_target_lookup("snapshot-origin")) != NULL)))
112 return EEXIST; 115 return EEXIST;
113  116
114 dmt = dm_target_alloc("snapshot"); 117 dmt = dm_target_alloc("snapshot");
115 dmt1 = dm_target_alloc("snapshot-origin"); 118 dmt1 = dm_target_alloc("snapshot-origin");
116 119
117 dmt->version[0] = 1; 120 dmt->version[0] = 1;
118 dmt->version[1] = 0; 121 dmt->version[1] = 0;
119 dmt->version[2] = 5; 122 dmt->version[2] = 5;
120 strlcpy(dmt->name, "snapshot", DM_MAX_TYPE_NAME); 123 strlcpy(dmt->name, "snapshot", DM_MAX_TYPE_NAME);
121 dmt->init = &dm_target_snapshot_init; 124 dmt->init = &dm_target_snapshot_init;
122 dmt->status = &dm_target_snapshot_status; 125 dmt->status = &dm_target_snapshot_status;
@@ -139,26 +142,29 @@ dm_target_snapshot_modcmd(modcmd_t cmd,  @@ -139,26 +142,29 @@ dm_target_snapshot_modcmd(modcmd_t cmd,
139 dmt1->upcall = &dm_target_snapshot_orig_upcall; 142 dmt1->upcall = &dm_target_snapshot_orig_upcall;
140 143
141 r = dm_target_insert(dmt1); 144 r = dm_target_insert(dmt1);
142 break; 145 break;
143 146
144 case MODULE_CMD_FINI: 147 case MODULE_CMD_FINI:
145 /* 148 /*
146 * Try to remove snapshot target if it works remove snap-origin 149 * Try to remove snapshot target if it works remove snap-origin
147 * it is not possible to remove snapshot and do not remove 150 * it is not possible to remove snapshot and do not remove
148 * snap-origin because they are used together. 151 * snap-origin because they are used together.
149 */ 152 */
150 if ((r = dm_target_rem("snapshot")) == 0) 153 if ((r = dm_target_rem("snapshot")) == 0)
151 r = dm_target_rem("snapshot-origin"); 154 r = dm_target_rem("snapshot-origin");
 155
 156 module_rele("dm"); /* release usage counter on dm module */
 157
152 break; 158 break;
153 159
154 case MODULE_CMD_STAT: 160 case MODULE_CMD_STAT:
155 return ENOTTY; 161 return ENOTTY;
156 162
157 default: 163 default:
158 return ENOTTY; 164 return ENOTTY;
159 } 165 }
160 166
161 return r; 167 return r;
162} 168}
163 169
164#endif 170#endif