summaryrefslogtreecommitdiffstats
path: root/sys/ufs/ffs/ffs_alloc.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2009-05-17 20:26:00 +0000
committeralc <alc@FreeBSD.org>2009-05-17 20:26:00 +0000
commitdc942dabcf042f350216364389b0f23960f3d5fb (patch)
treee3ab31a35178114fbfd380d8fa1208bcaf90f814 /sys/ufs/ffs/ffs_alloc.c
parent5f2df6ce18b44323bfc72c3690ef7a1e205a5f0a (diff)
downloadFreeBSD-src-dc942dabcf042f350216364389b0f23960f3d5fb.zip
FreeBSD-src-dc942dabcf042f350216364389b0f23960f3d5fb.tar.gz
Introduce vfs_bio_set_valid() and use it from ffs_realloccg(). This
eliminates the misuse of vfs_bio_clrbuf() by ffs_realloccg(). In collaboration with: tegge
Diffstat (limited to 'sys/ufs/ffs/ffs_alloc.c')
-rw-r--r--sys/ufs/ffs/ffs_alloc.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index 4748f68..b4f001e 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -326,10 +326,9 @@ retry:
ip->i_flag |= IN_CHANGE | IN_UPDATE;
allocbuf(bp, nsize);
bp->b_flags |= B_DONE;
- if ((bp->b_flags & (B_MALLOC | B_VMIO)) != B_VMIO)
- bzero((char *)bp->b_data + osize, nsize - osize);
- else
- vfs_bio_clrbuf(bp);
+ bzero(bp->b_data + osize, nsize - osize);
+ if ((bp->b_flags & (B_MALLOC | B_VMIO)) == B_VMIO)
+ vfs_bio_set_valid(bp, osize, nsize - osize);
*bpp = bp;
return (0);
}
@@ -404,10 +403,9 @@ retry:
ip->i_flag |= IN_CHANGE | IN_UPDATE;
allocbuf(bp, nsize);
bp->b_flags |= B_DONE;
- if ((bp->b_flags & (B_MALLOC | B_VMIO)) != B_VMIO)
- bzero((char *)bp->b_data + osize, nsize - osize);
- else
- vfs_bio_clrbuf(bp);
+ bzero(bp->b_data + osize, nsize - osize);
+ if ((bp->b_flags & (B_MALLOC | B_VMIO)) == B_VMIO)
+ vfs_bio_set_valid(bp, osize, nsize - osize);
*bpp = bp;
return (0);
}
OpenPOWER on IntegriCloud