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