Deleted Added
full compact
geom_raid3.c (133960) geom_raid3.c (134124)
1/*-
2 * Copyright (c) 2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sbin/geom/class/raid3/geom_raid3.c 133960 2004-08-18 15:56:02Z pjd $");
28__FBSDID("$FreeBSD: head/sbin/geom/class/raid3/geom_raid3.c 134124 2004-08-21 18:11:46Z pjd $");
29
30#include <sys/param.h>
31#include <errno.h>
32#include <paths.h>
33#include <stdio.h>
34#include <stdlib.h>
35#include <stdint.h>
36#include <string.h>

--- 16 unchanged lines hidden (view full) ---

53struct g_command class_commands[] = {
54 { "clear", G_FLAG_VERBOSE, raid3_main, G_NULL_OPTS },
55 { "configure", G_FLAG_VERBOSE, NULL,
56 {
57 { 'a', "autosync", NULL, G_TYPE_NONE },
58 { 'd', "dynamic", NULL, G_TYPE_NONE },
59 { 'h', "hardcode", NULL, G_TYPE_NONE },
60 { 'n', "noautosync", NULL, G_TYPE_NONE },
29
30#include <sys/param.h>
31#include <errno.h>
32#include <paths.h>
33#include <stdio.h>
34#include <stdlib.h>
35#include <stdint.h>
36#include <string.h>

--- 16 unchanged lines hidden (view full) ---

53struct g_command class_commands[] = {
54 { "clear", G_FLAG_VERBOSE, raid3_main, G_NULL_OPTS },
55 { "configure", G_FLAG_VERBOSE, NULL,
56 {
57 { 'a', "autosync", NULL, G_TYPE_NONE },
58 { 'd', "dynamic", NULL, G_TYPE_NONE },
59 { 'h', "hardcode", NULL, G_TYPE_NONE },
60 { 'n', "noautosync", NULL, G_TYPE_NONE },
61 { 'r', "round_robin", NULL, G_TYPE_NONE },
62 { 'R', "noround_robin", NULL, G_TYPE_NONE },
61 G_OPT_SENTINEL
62 }
63 },
64 { "dump", 0, raid3_main, G_NULL_OPTS },
65 { "insert", G_FLAG_VERBOSE, NULL,
66 {
67 { 'h', "hardcode", NULL, G_TYPE_NONE },
68 { 'n', "number", NULL, G_TYPE_NUMBER },
69 G_OPT_SENTINEL
70 }
71 },
72 { "label", G_FLAG_VERBOSE, raid3_main,
73 {
74 { 'h', "hardcode", NULL, G_TYPE_NONE },
75 { 'n', "noautosync", NULL, G_TYPE_NONE },
63 G_OPT_SENTINEL
64 }
65 },
66 { "dump", 0, raid3_main, G_NULL_OPTS },
67 { "insert", G_FLAG_VERBOSE, NULL,
68 {
69 { 'h', "hardcode", NULL, G_TYPE_NONE },
70 { 'n', "number", NULL, G_TYPE_NUMBER },
71 G_OPT_SENTINEL
72 }
73 },
74 { "label", G_FLAG_VERBOSE, raid3_main,
75 {
76 { 'h', "hardcode", NULL, G_TYPE_NONE },
77 { 'n', "noautosync", NULL, G_TYPE_NONE },
78 { 'r', "round_robin", NULL, G_TYPE_NONE },
76 G_OPT_SENTINEL
77 }
78 },
79 { "rebuild", G_FLAG_VERBOSE, NULL, G_NULL_OPTS },
80 { "remove", G_FLAG_VERBOSE, NULL,
81 {
82 { 'n', "number", NULL, G_TYPE_NUMBER },
83 G_OPT_SENTINEL

--- 10 unchanged lines hidden (view full) ---

94
95static int verbose = 0;
96
97void usage(const char *);
98void
99usage(const char *comm)
100{
101 fprintf(stderr,
79 G_OPT_SENTINEL
80 }
81 },
82 { "rebuild", G_FLAG_VERBOSE, NULL, G_NULL_OPTS },
83 { "remove", G_FLAG_VERBOSE, NULL,
84 {
85 { 'n', "number", NULL, G_TYPE_NUMBER },
86 G_OPT_SENTINEL

--- 10 unchanged lines hidden (view full) ---

97
98static int verbose = 0;
99
100void usage(const char *);
101void
102usage(const char *comm)
103{
104 fprintf(stderr,
102 "usage: %s label [-hnv] name prov prov prov [prov [...]]\n"
105 "usage: %s label [-hnrv] name prov prov prov [prov [...]]\n"
103 " %s clear [-v] prov [prov [...]]\n"
104 " %s dump prov [prov [...]]\n"
106 " %s clear [-v] prov [prov [...]]\n"
107 " %s dump prov [prov [...]]\n"
105 " %s configure [-adhnv] name\n"
108 " %s configure [-adhnrRv] name\n"
106 " %s rebuild [-v] name prov\n"
107 " %s insert [-hv] <-n number> name prov\n"
108 " %s remove [-v] <-n number> name\n"
109 " %s stop [-fv] name [...]\n",
110 comm, comm, comm, comm, comm, comm, comm, comm);
111 exit(EXIT_FAILURE);
112}
113

--- 22 unchanged lines hidden (view full) ---

136
137static void
138raid3_label(struct gctl_req *req)
139{
140 struct g_raid3_metadata md;
141 u_char sector[512];
142 const char *str;
143 char param[16];
109 " %s rebuild [-v] name prov\n"
110 " %s insert [-hv] <-n number> name prov\n"
111 " %s remove [-v] <-n number> name\n"
112 " %s stop [-fv] name [...]\n",
113 comm, comm, comm, comm, comm, comm, comm, comm);
114 exit(EXIT_FAILURE);
115}
116

--- 22 unchanged lines hidden (view full) ---

139
140static void
141raid3_label(struct gctl_req *req)
142{
143 struct g_raid3_metadata md;
144 u_char sector[512];
145 const char *str;
146 char param[16];
144 int *hardcode, *nargs, *noautosync, error, i;
147 int *hardcode, *nargs, *noautosync, *round_robin;
148 int error, i;
145 unsigned sectorsize;
146 off_t mediasize;
147
148 nargs = gctl_get_paraml(req, "nargs", sizeof(*nargs));
149 if (nargs == NULL) {
150 gctl_error(req, "No '%s' argument.", "nargs");
151 return;
152 }

--- 26 unchanged lines hidden (view full) ---

179 md.md_sync_offset = 0;
180 noautosync = gctl_get_paraml(req, "noautosync", sizeof(*noautosync));
181 if (noautosync == NULL) {
182 gctl_error(req, "No '%s' argument.", "noautosync");
183 return;
184 }
185 if (*noautosync)
186 md.md_mflags |= G_RAID3_DEVICE_FLAG_NOAUTOSYNC;
149 unsigned sectorsize;
150 off_t mediasize;
151
152 nargs = gctl_get_paraml(req, "nargs", sizeof(*nargs));
153 if (nargs == NULL) {
154 gctl_error(req, "No '%s' argument.", "nargs");
155 return;
156 }

--- 26 unchanged lines hidden (view full) ---

183 md.md_sync_offset = 0;
184 noautosync = gctl_get_paraml(req, "noautosync", sizeof(*noautosync));
185 if (noautosync == NULL) {
186 gctl_error(req, "No '%s' argument.", "noautosync");
187 return;
188 }
189 if (*noautosync)
190 md.md_mflags |= G_RAID3_DEVICE_FLAG_NOAUTOSYNC;
191 round_robin = gctl_get_paraml(req, "round_robin", sizeof(*round_robin));
192 if (round_robin == NULL) {
193 gctl_error(req, "No '%s' argument.", "round_robin");
194 return;
195 }
196 if (*round_robin)
197 md.md_mflags |= G_RAID3_DEVICE_FLAG_ROUND_ROBIN;
187 hardcode = gctl_get_paraml(req, "hardcode", sizeof(*hardcode));
188 if (hardcode == NULL) {
189 gctl_error(req, "No '%s' argument.", "hardcode");
190 return;
191 }
192
193 /*
194 * Calculate sectorsize by finding least common multiple from

--- 146 unchanged lines hidden ---
198 hardcode = gctl_get_paraml(req, "hardcode", sizeof(*hardcode));
199 if (hardcode == NULL) {
200 gctl_error(req, "No '%s' argument.", "hardcode");
201 return;
202 }
203
204 /*
205 * Calculate sectorsize by finding least common multiple from

--- 146 unchanged lines hidden ---