DragonFly-2.3.1.830.gc0885 master sys/kern vfs_bio.c vfs_vnops.c sys/sys buf.h device.h fcntl.h vnode.h sys/vfs/fifofs fifo_vnops.c sys/vfs/specfs spec_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jul 13 20:51:07 PDT 2009


commit c0885fab015851c4716c393c27efdbfc37a7cd67
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Jul 13 20:41:30 2009 -0700

    MPSAFE - Add read() and write() path MPSAFE support, and more.
    
    * Add sysctl vfs.read_mpsafe, vfs.write_mpsafe, and vfs.getattr_mpsafe.
      Only vfs.read_mpsafe is currently implemented, and only for HAMMER
      filesystems.
    
    * read() and write() will now call VOP_READ()/VOP_WRITE() without the
      MP lock if the vnode->v_flag says it is ok to do so.
    
    * read() and write() now serialize reads and writes which depend on the
      file offset stored in the fp, when the concurrent operations share the
      same fp.
    
    * Add vnode flags VMP_READ, VMP_WRITE, VMP_GETATTR.
    
    * Add vnode flag VNOTSEEKABLE indicating that fp->f_offset will never be
      used and no serialization is needed (which e.g. can mess up read()'s
      blocking devices such as ttys).
    
    * Correct bug in FIONREAD related to the data field being too small.

Summary of changes:
 sys/kern/vfs_bio.c          |   33 ++++++++-
 sys/kern/vfs_vnops.c        |  168 +++++++++++++++++++++++++++++++++++-------
 sys/sys/buf.h               |    1 +
 sys/sys/device.h            |    1 +
 sys/sys/fcntl.h             |    2 +
 sys/sys/vnode.h             |    2 +-
 sys/vfs/fifofs/fifo_vnops.c |    1 +
 sys/vfs/specfs/spec_vnops.c |    2 +
 8 files changed, 180 insertions(+), 30 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c0885fab015851c4716c393c27efdbfc37a7cd67


-- 
DragonFly BSD source repository





More information about the Commits mailing list