summaryrefslogtreecommitdiffstats
path: root/sys/geom/zero/g_zero.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2005-12-08 23:06:59 +0000
committerpjd <pjd@FreeBSD.org>2005-12-08 23:06:59 +0000
commit3c3f39be74df57e0b9232f9f30114f54ce3ca09b (patch)
tree3eb73d101829707395e3e10ba0b0b85dc18c0e04 /sys/geom/zero/g_zero.c
parent7ea810fefd3d911625dc47f409893f6e8002662b (diff)
downloadFreeBSD-src-3c3f39be74df57e0b9232f9f30114f54ce3ca09b.zip
FreeBSD-src-3c3f39be74df57e0b9232f9f30114f54ce3ca09b.tar.gz
- Allow to specify the byte which will be used for filling read buffer.
- Improve sysctl description a bit. Submitted by: Ivan Voras <ivoras@gmail.com>
Diffstat (limited to 'sys/geom/zero/g_zero.c')
-rw-r--r--sys/geom/zero/g_zero.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/geom/zero/g_zero.c b/sys/geom/zero/g_zero.c
index d458379..4fd7849 100644
--- a/sys/geom/zero/g_zero.c
+++ b/sys/geom/zero/g_zero.c
@@ -42,9 +42,12 @@
SYSCTL_DECL(_kern_geom);
SYSCTL_NODE(_kern_geom, OID_AUTO, zero, CTLFLAG_RW, 0, "GEOM_ZERO stuff");
-static u_int g_zero_clear = 1;
-SYSCTL_UINT(_kern_geom_zero, OID_AUTO, clear, CTLFLAG_RW, &g_zero_clear, 0,
- "Zero-fill bio_data.");
+static int g_zero_clear = 1;
+SYSCTL_INT(_kern_geom_zero, OID_AUTO, clear, CTLFLAG_RW, &g_zero_clear, 0,
+ "Clear read data buffer");
+static int g_zero_byte = 0;
+SYSCTL_INT(_kern_geom_zero, OID_AUTO, byte, CTLFLAG_RW, &g_zero_byte, 0,
+ "Byte (octet) value to clear the buffers with");
static void
g_zero_start(struct bio *bp)
@@ -54,7 +57,7 @@ g_zero_start(struct bio *bp)
switch (bp->bio_cmd) {
case BIO_READ:
if (g_zero_clear)
- bzero(bp->bio_data, bp->bio_length);
+ memset(bp->bio_data, g_zero_byte, bp->bio_length);
/* FALLTHROUGH */
case BIO_DELETE:
case BIO_WRITE:
OpenPOWER on IntegriCloud