Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Feb 2024 03:13:40 GMT
From:      Alan Somers <asomers@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 8758bf0aaec1 - main - fusefs: only test for incoherency if FN_SIZECHANGE is set
Message-ID:  <202402090313.4193DemE096838@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by asomers:

URL: https://cgit.FreeBSD.org/src/commit/?id=8758bf0aaec1d4b2ebcb429e8cabc691c2c95461

commit 8758bf0aaec1d4b2ebcb429e8cabc691c2c95461
Author:     Emil Tsalapatis <emil@etsalapatis.com>
AuthorDate: 2024-02-08 01:13:43 +0000
Commit:     Alan Somers <asomers@FreeBSD.org>
CommitDate: 2024-02-09 03:13:24 +0000

    fusefs: only test for incoherency if FN_SIZECHANGE is set
    
    FUSE emits spurious incoherency warnings in writethrough mode. The
    warnings are triggered by setattr calls generated by vnode truncation
    turning the cached va_size vattr stale, causing comparisons with the
    fresh version provided by the server to fail. Only validate the vnode's
    va_size vattr if the FN_SIZECHANGE flag is set.
    
    This is a part of the research work at RCSLab, University of Waterloo.
    
    Reviewed by:    asomers
    MFC after:      1 week
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/1110
---
 sys/fs/fuse/fuse_internal.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/fs/fuse/fuse_internal.c b/sys/fs/fuse/fuse_internal.c
index ffbf1f9bcc40..29d88fc942f4 100644
--- a/sys/fs/fuse/fuse_internal.c
+++ b/sys/fs/fuse/fuse_internal.c
@@ -269,10 +269,10 @@ fuse_internal_cache_attrs(struct vnode *vp, struct fuse_attr *attr,
 
 	if (vnode_isreg(vp) &&
 	    fvdat->cached_attrs.va_size != VNOVAL &&
+	    fvdat->flag & FN_SIZECHANGE &&
 	    attr->size != fvdat->cached_attrs.va_size)
 	{
-		if ( data->cache_mode == FUSE_CACHE_WB &&
-		    fvdat->flag & FN_SIZECHANGE)
+		if (data->cache_mode == FUSE_CACHE_WB)
 		{
 			const char *msg;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202402090313.4193DemE096838>