cvs commit: src/sys/dev/disk/ccd ccd.c src/sys/dev/disk/vn vn.c         src/sys/i386/i386 machdep.c src/sys/kern subr_diskslice.c         vfs_bio.c vfs_cluster.c src/sys/sys buf.h src/sys/vfs/mfs         mfs_vfsops.c
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Thu May  4 11:36:57 PDT 2006
    
    
  
dillon      2006/05/04 11:32:23 PDT
DragonFly src repository
  Modified files:
    sys/dev/disk/ccd     ccd.c 
    sys/dev/disk/vn      vn.c 
    sys/i386/i386        machdep.c 
    sys/kern             subr_diskslice.c vfs_bio.c vfs_cluster.c 
    sys/sys              buf.h 
    sys/vfs/mfs          mfs_vfsops.c 
  Log:
  Block devices generally truncate the size of I/O requests which go past EOF.
  This is exactly what we want when manually reading or writing a block device
  such as /dev/ad0s1a, but is not desired when a VFS issues I/O ops on
  filesystem buffers.  In such cases, any EOF condition must be considered an
  error.
  
  Implement a new filesystem buffer flag B_BNOCLIP, which getblk() and friends
  automatically set.  If set, block devices are guarenteed to return an error
  if the I/O request is at EOF or would otherwise have to be clipped to EOF.
  Block devices further guarentee that b_bcount will not be modified when this
  flag is set.
  
  Adjust all block device EOF checks to use the new flag, and clean up the code
  while I'm there.  Also, set b_resid in a couple of degenerate cases where
  it was not being set.
  
  Revision  Changes    Path
  1.30      +30 -31    src/sys/dev/disk/ccd/ccd.c
  1.21      +36 -31    src/sys/dev/disk/vn/vn.c
  1.91      +31 -14    src/sys/i386/i386/machdep.c
  1.19      +30 -18    src/sys/kern/subr_diskslice.c
  1.72      +1 -1      src/sys/kern/vfs_bio.c
  1.25      +1 -1      src/sys/kern/vfs_cluster.c
  1.35      +15 -18    src/sys/sys/buf.h
  1.29      +37 -23    src/sys/vfs/mfs/mfs_vfsops.c
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ccd/ccd.c.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/vn/vn.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/machdep.c.diff?r1=1.90&r2=1.91&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/subr_diskslice.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_bio.c.diff?r1=1.71&r2=1.72&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cluster.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/buf.h.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/mfs/mfs_vfsops.c.diff?r1=1.28&r2=1.29&f=u
    
    
More information about the Commits
mailing list