From dc230127daec112c1a3bb700232c22ac04631e88 Mon Sep 17 00:00:00 2001 From: sos Date: Mon, 7 Feb 2000 23:05:40 +0000 Subject: Do refcounting of open devices (more) correctly. count_dev funtion by phk. --- sys/dev/ata/atapi-fd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'sys/dev/ata/atapi-fd.c') diff --git a/sys/dev/ata/atapi-fd.c b/sys/dev/ata/atapi-fd.c index 51a4e06..1ad955e 100644 --- a/sys/dev/ata/atapi-fd.c +++ b/sys/dev/ata/atapi-fd.c @@ -215,7 +215,7 @@ afdopen(dev_t dev, int32_t flags, int32_t fmt, struct proc *p) atapi_test_ready(fdp->atp); - if (!fdp->refcnt++) + if (count_dev(dev) == 1) afd_prevent_allow(fdp, 1); if (afd_sense(fdp)) @@ -238,7 +238,7 @@ afdclose(dev_t dev, int32_t flags, int32_t fmt, struct proc *p) { struct afd_softc *fdp = dev->si_drv1; - if (!--fdp->refcnt) + if (count_dev(dev) == 1) afd_prevent_allow(fdp, 0); return 0; } @@ -250,12 +250,12 @@ afdioctl(dev_t dev, u_long cmd, caddr_t addr, int32_t flag, struct proc *p) switch (cmd) { case CDIOCEJECT: - if (fdp->refcnt > 1) + if (count_dev(dev) > 1) return EBUSY; return afd_eject(fdp, 0); case CDIOCCLOSE: - if (fdp->refcnt > 1) + if (count_dev(dev) > 1) return 0; return afd_eject(fdp, 1); @@ -305,7 +305,7 @@ afd_start(struct afd_softc *fdp) } lba = bp->b_pblkno / (fdp->cap.sector_size / DEV_BSIZE); - count = (bp->b_bcount + (fdp->cap.sector_size - 1)) / fdp->cap.sector_size; + count = bp->b_bcount; data_ptr = bp->b_data; bp->b_resid = 0; -- cgit v1.1