OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_1-78-g93b1d97

Gerrit Code Review gerrit@openafs.org
Wed, 1 Sep 2021 23:55:18 -0400


The following commit has been merged in the master branch:
commit 93b1d97986c6bc4c70743ca8f25f1f717dc71e94
Author: Andrew Deason <adeason@dson.org>
Date:   Wed Jan 1 20:11:35 2020 -0600

    FBSD: Skip page flush in afs_DoPartialWrite
    
    Currently, the FBSD afs_vop_putpages() will call afs_write(), which
    can then go through afs_DoPartialWrite -> afs_StoreAllSegments ->
    osi_VM_StoreAllSegments -> vm_object_page_clean, which will then try
    to go through afs_vop_putpages() again.
    
    In this call stack, we're only calling afs_StoreAllSegments to reduce
    our dirty cache chunks (afs_StoreAllSegments does nothing if we don't
    have that many dirty cache chunks); we don't need to reduce dirty
    pages, so calling osi_VM_StoreAllSegments is not needed.
    
    To avoid calling osi_VM_StoreAllSegments in this situation, add a new
    flag AFS_NOVMSYNC, which skips the osi_VM_StoreAllSegments call and
    just flushes the dirty cache chunks. Use this flag in
    afs_DoPartialWrite on FBSD, and slightly refactor the ifdefs to reduce
    some code duplication.
    
    Change-Id: Id6bf9a7f4ac6d5f09b0249ca6ed11674d556e909
    Reviewed-on: https://gerrit.openafs.org/14163
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>

 src/afs/VNOPS/afs_vnop_write.c | 9 ++++++---
 src/afs/afs.h                  | 1 +
 src/afs/afs_segments.c         | 5 ++++-
 3 files changed, 11 insertions(+), 4 deletions(-)

-- 
OpenAFS Master Repository