From 09553313704418ab61211c92251b2af374d2e362 Mon Sep 17 00:00:00 2001 From: phk Date: Fri, 22 Aug 2003 10:28:19 +0000 Subject: Block all GETATTR calls hitting the CCD, we wouldn't know which child device should handle them. This prevents for instance GEOM::ioctl requests from reaching a lower BSDlabel node, which ps@ found would confuse newfs(8). --- sys/geom/geom_ccd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'sys/geom') diff --git a/sys/geom/geom_ccd.c b/sys/geom/geom_ccd.c index c2f309a..f296ee3 100644 --- a/sys/geom/geom_ccd.c +++ b/sys/geom/geom_ccd.c @@ -425,6 +425,16 @@ g_ccd_start(struct bio *bp) cs = bp->bio_to->geom->softc; /* + * Block all GETATTR requests, we wouldn't know which of our + * subdevices we should ship it off to. + * XXX: this may not be the right policy. + */ + if(bp->bio_cmd == BIO_GETATTR) { + g_io_deliver(bp, EINVAL); + return; + } + + /* * Translate the partition-relative block number to an absolute. */ bn = bp->bio_offset / cs->sc_secsize; -- cgit v1.1