DragonFly BSD
DragonFly commits List (threaded) for 2010-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Hold vm_token() for certain buf/bio/vm_page interactions


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 27 Nov 2010 22:43:53 -0800 (PST)

commit 763e6ed1f4de4043907d79652371ce3303e9bebc
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Sat Nov 27 22:28:52 2010 -0800

    kernel - Hold vm_token() for certain buf/bio/vm_page interactions
    
    * Hold the vm_token when messing around with page valid and dirty bits
      in buffer cache operations.  Such race conditions are possible but would
      be very rare.
    
    * Fix inconsistent use of bio2.bio_offset when swapcache intercepts an
      I/O operation.  When this case occurs the normal filesystem VOP_STRATEGY
      function will not be called and any assumption that bio2.bio_offset
      will represent a block device offset will be invalid.
    
      To deal with this case swapcache will re-set bio_offset to NOOFFSET.
      Filesystems use this value to determine that no block device offset
      has been cached for a logical file block.
    
    Reported-by: Jan Lentfer <Jan.Lentfer@web.de> (bio_offset issue)

Summary of changes:
 sys/kern/vfs_bio.c |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/763e6ed1f4de4043907d79652371ce3303e9bebc


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]