From 34968037b1a6734784ee589f37c9c0820545167d Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Fri, 7 Mar 2003 23:49:16 +0000 Subject: [PATCH] Use the appropriate size when zeroing out the unused portion of a snapshot's copy of a superblock. This patch fixes a panic when taking a snapshot of a 4096/512 filesystem. Reported by: Ian Freislich Sponsored by: DARPA & NAI Labs. --- sys/ufs/ffs/ffs_snapshot.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c index 653d5f8093c..a4585d3b8ee 100644 --- a/sys/ufs/ffs/ffs_snapshot.c +++ b/sys/ufs/ffs/ffs_snapshot.c @@ -352,9 +352,9 @@ restart: bcopy(fs, copy_fs, fs->fs_sbsize); if ((fs->fs_flags & (FS_UNCLEAN | FS_NEEDSFSCK)) == 0) copy_fs->fs_clean = 1; - if (fs->fs_sbsize < SBLOCKSIZE) - bzero(&sbp->b_data[loc + fs->fs_sbsize], - SBLOCKSIZE - fs->fs_sbsize); + size = fs->fs_bsize < SBLOCKSIZE ? fs->fs_bsize : SBLOCKSIZE; + if (fs->fs_sbsize < size) + bzero(&sbp->b_data[loc + fs->fs_sbsize], size - fs->fs_sbsize); size = blkroundup(fs, fs->fs_cssize); if (fs->fs_contigsumsize > 0) size += fs->fs_ncg * sizeof(int32_t);