svn commit: r216794 - in head/sys: dev/md geom
Konstantin Belousov
kib at FreeBSD.org
Wed Dec 29 12:11:07 UTC 2010
Author: kib
Date: Wed Dec 29 12:11:07 2010
New Revision: 216794
URL: http://svn.freebsd.org/changeset/base/216794
Log:
Add reporting of GEOM::candelete BIO_GETATTR for md(4) and geom_disk(4).
Non-zero value of attribute means that device supports BIO_DELETE.
Suggested and reviewed by: pjd
Tested by: pho
MFC after: 1 week
Modified:
head/sys/dev/md/md.c
head/sys/geom/geom_disk.c
Modified: head/sys/dev/md/md.c
==============================================================================
--- head/sys/dev/md/md.c Wed Dec 29 11:39:15 2010 (r216793)
+++ head/sys/dev/md/md.c Wed Dec 29 12:11:07 2010 (r216794)
@@ -717,11 +717,12 @@ md_kthread(void *arg)
}
mtx_unlock(&sc->queue_mtx);
if (bp->bio_cmd == BIO_GETATTR) {
- if (sc->fwsectors && sc->fwheads &&
+ if ((sc->fwsectors && sc->fwheads &&
(g_handleattr_int(bp, "GEOM::fwsectors",
sc->fwsectors) ||
g_handleattr_int(bp, "GEOM::fwheads",
- sc->fwheads)))
+ sc->fwheads))) ||
+ g_handleattr_int(bp, "GEOM::candelete", 1))
error = -1;
else
error = EOPNOTSUPP;
Modified: head/sys/geom/geom_disk.c
==============================================================================
--- head/sys/geom/geom_disk.c Wed Dec 29 11:39:15 2010 (r216793)
+++ head/sys/geom/geom_disk.c Wed Dec 29 12:11:07 2010 (r216794)
@@ -297,7 +297,11 @@ g_disk_start(struct bio *bp)
} while (bp2 != NULL);
break;
case BIO_GETATTR:
- if (g_handleattr_int(bp, "GEOM::fwsectors", dp->d_fwsectors))
+ if (g_handleattr_int(bp, "GEOM::candelete",
+ (dp->d_flags & DISKFLAG_CANDELETE) != 0))
+ break;
+ else if (g_handleattr_int(bp, "GEOM::fwsectors",
+ dp->d_fwsectors))
break;
else if (g_handleattr_int(bp, "GEOM::fwheads", dp->d_fwheads))
break;
More information about the svn-src-all
mailing list