Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Apr 2001 03:33:10 -0700 (PDT)
From:      Bruce Evans <bde@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/gnu/ext2fs ext2_balloc.c
Message-ID:  <200104251033.f3PAXAh37177@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
bde         2001/04/25 03:33:10 PDT

  Modified files:
    sys/gnu/ext2fs       ext2_balloc.c 
  Log:
  MFffs ffs_balloc.c 1.5.
  
  Long ago, bread() set b_blkno to the disk block number as a side effect
  of doing physical i/o (or it just retained the setting from when the
  i/o was done).  The setting is lost when buffers go away and then are
  reconsituted from VM.  bread() originally compensated by doing a
  VOP_BMAP() to recover b_blkno, but this was no good since it sometimes
  caused extra i/o or even deadlock for bread()ing metadata to do the
  bmap.  This was fixed in vfs_bio.c 1.33 (1995/03/03) and ffs_balloc.c
  1.5, etc., by removing the VOP_BMAP() from bread() and breadn(), and
  changing all (?) places that used b_blkno to set it if necessary.
  
  ext2fs was not imported until later in 1995 and was still depending on
  the old behaviour of bread() in at least ext2_balloc().  This caused
  filesystem and file corruption by clobbering direct block numbers in
  inodes.
  
  Revision  Changes    Path
  1.13      +3 -1      src/sys/gnu/ext2fs/ext2_balloc.c


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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