geom_dev.c (06d425f92e7dd0dc8f8e705c6d76b78989a496ab) geom_dev.c (f805f204b63aaab5b49c7371deb8c2fd015bd894)
1/*-
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the

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

239 * XXX: since that would prevent us from doing our job, and stalling events
240 * XXX: will break (actually: stall) the BSD disklabel hacks.
241 */
242static int
243g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td)
244{
245 struct g_geom *gp;
246 struct g_consumer *cp;
1/*-
2 * Copyright (c) 2002 Poul-Henning Kamp
3 * Copyright (c) 2002 Networks Associates Technology, Inc.
4 * All rights reserved.
5 *
6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp
7 * and NAI Labs, the Security Research Division of Network Associates, Inc.
8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the

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

239 * XXX: since that would prevent us from doing our job, and stalling events
240 * XXX: will break (actually: stall) the BSD disklabel hacks.
241 */
242static int
243g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread *td)
244{
245 struct g_geom *gp;
246 struct g_consumer *cp;
247 struct g_provider *pp;
247 struct g_kerneldump kd;
248 off_t offset, length, chunk;
249 int i, error;
250 u_int u;
251
252 gp = dev->si_drv1;
253 cp = dev->si_drv2;
248 struct g_kerneldump kd;
249 off_t offset, length, chunk;
250 int i, error;
251 u_int u;
252
253 gp = dev->si_drv1;
254 cp = dev->si_drv2;
255 pp = cp->provider;
254
255 error = 0;
256 KASSERT(cp->acr || cp->acw,
257 ("Consumer with zero access count in g_dev_ioctl"));
258
259 i = IOCPARM_LEN(cmd);
260 switch (cmd) {
261 case DIOCGSECTORSIZE:

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

324 */
325 if (SIGPENDING(td))
326 break;
327 }
328 break;
329 case DIOCGIDENT:
330 error = g_io_getattr("GEOM::ident", cp, &i, data);
331 break;
256
257 error = 0;
258 KASSERT(cp->acr || cp->acw,
259 ("Consumer with zero access count in g_dev_ioctl"));
260
261 i = IOCPARM_LEN(cmd);
262 switch (cmd) {
263 case DIOCGSECTORSIZE:

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

326 */
327 if (SIGPENDING(td))
328 break;
329 }
330 break;
331 case DIOCGIDENT:
332 error = g_io_getattr("GEOM::ident", cp, &i, data);
333 break;
334 case DIOCGPROVIDERNAME:
335 if (pp == NULL)
336 return (ENOENT);
337 strlcpy(data, pp->name, i);
338 break;
332
333 default:
334 if (cp->provider->geom->ioctl != NULL) {
335 error = cp->provider->geom->ioctl(cp->provider, cmd, data, fflag, td);
336 } else {
337 error = ENOIOCTL;
338 }
339 }

--- 117 unchanged lines hidden ---
339
340 default:
341 if (cp->provider->geom->ioctl != NULL) {
342 error = cp->provider->geom->ioctl(cp->provider, cmd, data, fflag, td);
343 } else {
344 error = ENOIOCTL;
345 }
346 }

--- 117 unchanged lines hidden ---