diff options
author | pjd <pjd@FreeBSD.org> | 2005-12-08 23:06:59 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2005-12-08 23:06:59 +0000 |
commit | 3c3f39be74df57e0b9232f9f30114f54ce3ca09b (patch) | |
tree | 3eb73d101829707395e3e10ba0b0b85dc18c0e04 /sys/geom/zero | |
parent | 7ea810fefd3d911625dc47f409893f6e8002662b (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/geom/zero/g_zero.c | 11 |
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: |