Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Jun 1998 14:06:04 -0700 (PDT)
From:      Bruce Evans <bde@FreeBSD.ORG>
To:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG
Subject:   cvs commit: src/sys/gnu/ext2fs ext2_linux_ialloc.c
Message-ID:  <199806212106.OAA26914@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
bde         1998/06/21 14:06:04 PDT

  Modified files:
    sys/gnu/ext2fs       ext2_linux_ialloc.c 
  Log:
  Fixed (?) races in mark_buffer_dirty().  We abuse the buffer cache
  by hacking on locked buffers without getblk()ing them, and we didn't
  even use splbio() to prevent biodone() changing the buffer underneath
  use when a write completes.  I think there was no problem in practice
  on i386's because the operations on b_flags and numdirtybufs happen to
  be atomic.  We still depend on biodone()'s operations on b_flags not
  interfering with ours.  I think there is only interference for B_ERROR,
  and this is harmless because errors for async writes are ignored anyway.
  
  Don't use mark_buffer_dirty() except for superblock-related metadata.
  It was used in just one case where ordinary BSD buffering is more
  natural.
  
  Revision  Changes    Path
  1.10      +6 -3      src/sys/gnu/ext2fs/ext2_linux_ialloc.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?199806212106.OAA26914>