git: kernel - Support bdwrite() on tmpfs buffer cache buffers

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Dec 7 22:36:29 PST 2011


commit 8f9ba07bf8fc82b831f5600141b0b039548764ee
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Dec 7 22:32:33 2011 -0800

    kernel - Support bdwrite() on tmpfs buffer cache buffers
    
    * tmpfs itself does not call bdwrite() when no swap space has been
      allocated but certain system side effects such as nvtruncbuf()
      when a file is truncated CAN cause bdwrite() to be called.
    
      This eventually causes the buffer to run through tmpfs's strategy
      function.
    
    * Adjust the strategy function to handle the no-swap case by marking
      the underlying pages dirty and valid and completing the I/O.
    
    * Also handle the case when swap exists but fills up.  If the
      swap_strategy() function fails with ENOMEM fall-back to again
      marking the pages dirty andvalid and completing the I/O.
    
      This allows tmpfs to fill up to the system's total memory+swap instead
      of just the system's swap.

Summary of changes:
 sys/vfs/tmpfs/tmpfs_vnops.c |   59 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 3 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8f9ba07bf8fc82b831f5600141b0b039548764ee


-- 
DragonFly BSD source repository





More information about the Commits mailing list