Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Feb 2010 16:22:08 +0000 (UTC)
From:      Gavin Atkinson <gavin@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sbin/growfs growfs.c
Message-ID:  <201002131622.o1DGMStT046501@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
gavin       2010-02-13 16:22:08 UTC

  FreeBSD src repository

  Modified files:
    sbin/growfs          growfs.c 
  Log:
  SVN rev 203835 on 2010-02-13 16:22:08Z by gavin
  
  When growing a UFS1 filesystem, we need to initialise all inodes in any new
  cylinder groups that are created.  When the filesystem is first created,
  newfs always initialises the first two blocks of inodes, and then in the
  UFS1 case will also initialise the remaining inode blocks.  The changes in
  growfs.c 1.23 broke the initialisation of all inodes, seemingly based on
  this implementation detail in newfs(8).  The result was that instead of
  initialising all inodes, we would actually end up initialising all but the
  first two blocks of inodes.  If the filesystem was grown into empty
  (all-zeros) space then the resulting filesystem was fine, however when
  grown onto non-zeroed space the filesystem produced would appear to have
  massive corruption on the first fsck after growing.
  A test case for this problem can be found in the PR audit trail.
  
  Fix this by once again initialising all inodes in the UFS1 case.
  
  PR:             bin/115174
  Submitted by:   Nate Eldredgei  nge cs.hmc.edu
  Reviewed by:    mjacob
  MFC after:      1 month
  
  Revision  Changes    Path
  1.30      +2 -4      src/sbin/growfs/growfs.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201002131622.o1DGMStT046501>