diff options
author | dyson <dyson@FreeBSD.org> | 1998-03-04 06:44:59 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1998-03-04 06:44:59 +0000 |
commit | db1e77e7424c9d74331de447a53d78a614ca1501 (patch) | |
tree | 9ec5cb08c1859f92d05edea3d1fc9c23960e6e7b /sys/fs | |
parent | 1ae42d49a8c03dba8b67e23583ae96ebc426a4cb (diff) | |
download | FreeBSD-src-db1e77e7424c9d74331de447a53d78a614ca1501.zip FreeBSD-src-db1e77e7424c9d74331de447a53d78a614ca1501.tar.gz |
Fix certain kinds of block device operations. For example, tunefs on
a block device shouldn't crash the system anymore.
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/specfs/spec_vnops.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c index ff2bc6a..50a70dc 100644 --- a/sys/fs/specfs/spec_vnops.c +++ b/sys/fs/specfs/spec_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95 - * $Id: spec_vnops.c,v 1.55 1998/02/05 03:32:23 dyson Exp $ + * $Id: spec_vnops.c,v 1.56 1998/02/06 12:13:43 eivind Exp $ */ #include <sys/param.h> @@ -393,15 +393,10 @@ spec_write(ap) brelse(bp); return (error); } - if (vp->v_flag & VOBJBUF) - bp->b_flags |= B_CLUSTEROK; error = uiomove((char *)bp->b_data + on, n, uio); - if (n + on == bsize) { - if ((vp->v_flag & VOBJBUF) && (on == 0)) - vfs_bio_awrite(bp); - else - bawrite(bp); - } else + if (n + on == bsize) + bawrite(bp); + else bdwrite(bp); } while (error == 0 && uio->uio_resid > 0 && n != 0); return (error); |