diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2000-01-16 09:25:10 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2000-01-16 09:25:10 +0000 |
| commit | af8862e4e6963f1536ef205d0390fb9bb9a2ef86 (patch) | |
| tree | e7fc4e5d547741414621dd07a93d8a6d05da31a5 /sys/dev/ccd | |
| parent | b4d07e45c57fd192b010c12bccc9f7d6fee222c2 (diff) | |
Notes
Diffstat (limited to 'sys/dev/ccd')
| -rw-r--r-- | sys/dev/ccd/ccd.c | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/sys/dev/ccd/ccd.c b/sys/dev/ccd/ccd.c index c2a960de31a9..90ac31eadea5 100644 --- a/sys/dev/ccd/ccd.c +++ b/sys/dev/ccd/ccd.c @@ -727,19 +727,7 @@ ccdopen(dev, flags, fmt, p) goto done; } - /* Prevent our unit from being unconfigured while open. */ - switch (fmt) { - case S_IFCHR: - cs->sc_copenmask |= pmask; - break; - - case S_IFBLK: - cs->sc_bopenmask |= pmask; - break; - } - cs->sc_openmask = - cs->sc_copenmask | cs->sc_bopenmask; - + cs->sc_openmask |= pmask; done: ccdunlock(cs); return (0); @@ -771,18 +759,7 @@ ccdclose(dev, flags, fmt, p) part = ccdpart(dev); /* ...that much closer to allowing unconfiguration... */ - switch (fmt) { - case S_IFCHR: - cs->sc_copenmask &= ~(1 << part); - break; - - case S_IFBLK: - cs->sc_bopenmask &= ~(1 << part); - break; - } - cs->sc_openmask = - cs->sc_copenmask | cs->sc_bopenmask; - + cs->sc_openmask &= ~(1 << part); ccdunlock(cs); return (0); } @@ -1408,16 +1385,10 @@ ccdioctl(dev, cmd, data, flag, p) if ((error = ccdlock(cs)) != 0) return (error); - /* - * Don't unconfigure if any other partitions are open - * or if both the character and block flavors of this - * partition are open. - */ + /* Don't unconfigure if any other partitions are open */ part = ccdpart(dev); pmask = (1 << part); - if ((cs->sc_openmask & ~pmask) || - ((cs->sc_bopenmask & pmask) && - (cs->sc_copenmask & pmask))) { + if ((cs->sc_openmask & ~pmask)) { ccdunlock(cs); return (EBUSY); } @@ -1544,7 +1515,7 @@ ccdsize(dev) struct ccd_softc *cs; int part, size; - if (ccdopen(dev, 0, S_IFBLK, curproc)) + if (ccdopen(dev, 0, S_IFCHR, curproc)) return (-1); cs = &ccd_softc[ccdunit(dev)]; @@ -1558,7 +1529,7 @@ ccdsize(dev) else size = cs->sc_label.d_partitions[part].p_size; - if (ccdclose(dev, 0, S_IFBLK, curproc)) + if (ccdclose(dev, 0, S_IFCHR, curproc)) return (-1); return (size); |
