<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in fuse_node.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>2d19c2cd - fusefs: correct a comment</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#2d19c2cd</link>
        <description>fusefs: correct a comment[skip ci]Sponsored by:	Axcient(cherry picked from commit c1326c01df81dd06739ddf1946e1968ddaba0c8e)

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Thu, 04 Apr 2024 20:18:56 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>739488cc - fusefs: fix invalid value for st_birthtime.tv_nsec</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#739488cc</link>
        <description>fusefs: fix invalid value for st_birthtime.tv_nsecIf a file system&apos;s on-disk format does not support st_birthtime, itisn&apos;t clear what value it should return in stat(2).  Neither our manpage nor the OpenGroup specifies.  But our convention for UFS andmsdosfs is to return { .tv_sec = -1, .tv_nsec = 0 }.  fusefs isdifferent.  It returns { .tv_sec = -1, .tv_nsec = -1 }.  It&apos;s done thatever since the initial import in SVN r241519.Most software apparently handles this just fine.  It must, because we&apos;vehad no complaints.  But the Rust standard library will panic whenreading such a timestamp during std::fs::metadata, even if the callerdoesn&apos;t care about that particular value.  That&apos;s a separate bug, andshould be fixed.Change our invalid value to match msdosfs and ufs, pacifying the Ruststandard library.PR:		276602Sponsored by:	AxcientReviewed by:	emasteDifferential Revision: https://reviews.freebsd.org/D43590(cherry picked from commit 55b80e2ca52c4b27c4920d372a6e71ac9ab7da9e)

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Thu, 25 Jan 2024 15:19:37 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>685dc743 - sys: Remove $FreeBSD$: one-line .c pattern</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#685dc743</link>
        <description>sys: Remove $FreeBSD$: one-line .c patternRemove /^[\s*]*__FBSDID\(&quot;\$FreeBSD\$&quot;\);?\s*\n/

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Wed, 16 Aug 2023 17:54:36 +0000</pubDate>
        <dc:creator>Warner Losh &lt;imp@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>ba8cc6d7 - vfs: use __enum_uint8 for vtype and vstate</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#ba8cc6d7</link>
        <description>vfs: use __enum_uint8 for vtype and vstateThis whacks hackery around only reading v_type once.Bump __FreeBSD_version to 1400093

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Sun, 12 Mar 2023 19:31:27 +0000</pubDate>
        <dc:creator>Mateusz Guzik &lt;mjg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>829f0bcb - vfs: add the concept of vnode state transitions</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#829f0bcb</link>
        <description>vfs: add the concept of vnode state transitionsTo quote from a comment above vput_final:&lt;quote&gt;* XXX Some filesystems pass in an exclusively locked vnode and strongly depend* on the lock being held all the way until VOP_INACTIVE. This in particular* happens with UFS which adds half-constructed vnodes to the hash, where they* can be found by other code.&lt;/quote&gt;As is there is no mechanism which allows filesystems to denote that avnode is fully initialized, consequently problems like the above areonly found the hard way(tm).Add rudimentary support for state transitions, which in particular allowto assert the vnode is not legally unlocked until its fate is decided(either construction finishes or vgone is called to abort it).The new field lands in a 1-byte hole, thus it does not grow the struct.Bump __FreeBSD_version to 1400077Reviewed by:	kib (previous version)Tested by:	phoDifferential Revision:	https://reviews.freebsd.org/D37759

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Mon, 19 Dec 2022 13:00:30 +0000</pubDate>
        <dc:creator>Mateusz Guzik &lt;mjg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>0bef4927 - fusefs: handle evil servers that return illegal inode numbers</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#0bef4927</link>
        <description>fusefs: handle evil servers that return illegal inode numbers* If during FUSE_CREATE, FUSE_MKDIR, etc the server returns the same  inode number for the new file as for its parent directory, reject it.  Previously this would triggers a recurse-on-non-recursive lock panic.* If during FUSE_LINK the server returns a different inode number for  the new name as for the old one, reject it.  Obviously, that can&apos;t be  a hard link.* If during FUSE_LOOKUP the server returns the same inode number for the  new file as for its parent directory, reject it.  Nothing good can  come of this.PR:		263662Reported by:	Robert Morris &lt;rtm@lcs.mit.edu&gt;MFC after:	2 weeksReviewed by:	pfgDifferential Revision: https://reviews.freebsd.org/D35128

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Wed, 04 May 2022 23:36:17 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>3d856234 - fusefs: Address -Wunused-but-set-variable warnings</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#3d856234</link>
        <description>fusefs: Address -Wunused-but-set-variable warningsReviewed by:	asomersMFC after:	1 weekDifferential Revision:	https://reviews.freebsd.org/D33957

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Thu, 20 Jan 2022 13:25:00 +0000</pubDate>
        <dc:creator>Mark Johnston &lt;markj@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>13d593a5 - Fix a race in fusefs that can corrupt a file&apos;s size.</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#13d593a5</link>
        <description>Fix a race in fusefs that can corrupt a file&apos;s size.VOPs like VOP_SETATTR can change a file&apos;s size, with the vnodeexclusively locked.  But VOPs like VOP_LOOKUP look up the file size fromthe server without the vnode locked.  So a race is possible.  Forexample:1) One thread calls VOP_SETATTR to truncate a file.  It locks the vnode   and sends FUSE_SETATTR to the server.2) A second thread calls VOP_LOOKUP and fetches the file&apos;s attributes from   the server.  Then it blocks trying to acquire the vnode lock.3) FUSE_SETATTR returns and the first thread releases the vnode lock.4) The second thread acquires the vnode lock and caches the file&apos;s   attributes, which are now out-of-date.Fix this race by recording a timestamp in the vnode of the last timethat its filesize was modified.  Check that timestamp during VOP_LOOKUPand VFS_VGET.  If it&apos;s newer than the time at which FUSE_LOOKUP wasissued to the server, ignore the attributes returned by FUSE_LOOKUP.PR:		259071Reported by:	Agata &lt;chogata@moosefs.pro&gt;Reviewed by:	pfgMFC after:	2 weeksDifferential Revision: https://reviews.freebsd.org/D33158

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Mon, 29 Nov 2021 02:17:34 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>25927e06 - fusefs: correctly handle an inode that changes file types</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#25927e06</link>
        <description>fusefs: correctly handle an inode that changes file typesCorrectly handle the situation where a FUSE server unlinks a file, thencreates a new file of a different type but with the same inode number.Previously fuse_vnop_lookup in this situation would return EAGAIN.  Butsince it didn&apos;t call vgone(), the vnode couldn&apos;t be reused right away.Fix this by immediately calling vgone() and reallocating a new vnode.This problem can occur in three code paths, during VOP_LOOKUP,VOP_SETATTR, or following FUSE_GETATTR, which usually happens duringVOP_GETATTR but can occur during other vops, too.  Note that the correctresponse actually doesn&apos;t depend on whether the entry cache has expired.In fact, during VOP_LOOKUP, we can&apos;t even tell.  Either it has expiredalready, or else the vnode got reclaimed by vnlru.Also, correct the error code during the VOP_SETATTR path.PR:		258022Reported by:	chogata@moosefs.proMFC after:	2 weeksReviewed by:	pfgDifferential Revision: https://reviews.freebsd.org/D33283

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Mon, 06 Dec 2021 05:43:17 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>91972cfc - fusefs: update atime on reads when using cached attributes</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#91972cfc</link>
        <description>fusefs: update atime on reads when using cached attributesWhen using cached attributes, whether or not the data cache is enabled,fusefs must update a file&apos;s atime whenever it reads from it, so long asit wasn&apos;t mounted with -o noatime.  Update it in-kernel, and flush it tothe server on close or during the next setattr operation.The downside is that close() will now frequently trigger a FUSE_SETATTRupcall.  But if you care about performance, you should be using-o noatime anyway.MFC after:	2 weeksReviewed by:	pfgDifferential Revision: https://reviews.freebsd.org/D33145

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Mon, 29 Nov 2021 01:53:31 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b4a58fbf - vfs: remove cn_thread</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#b4a58fbf</link>
        <description>vfs: remove cn_threadIt is always curthread.Reviewed by:	kibDifferential Revision:	https://reviews.freebsd.org/D32453

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Fri, 01 Oct 2021 21:16:54 +0000</pubDate>
        <dc:creator>Mateusz Guzik &lt;mjg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>5d94aaac - fusefs: quiet some cache-related warnings</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#5d94aaac</link>
        <description>fusefs: quiet some cache-related warningsIf the FUSE server does something that would make our cache incoherent,we should print a warning to the user.  However, we previously warned insome situations when we shouldn&apos;t, such as if the file&apos;s size changed onthe server _after_ our own attribute cache had expired.  This changesuppresses the warning in cases like that.  It also moves the warninglogic to a single place within the code.PR:		256936Reported by:	Agata &lt;chogata@moosefs.pro&gt;Tested by:	Agata &lt;chogata@moosefs.pro&gt;, jSML4ThWwBID69YC@protonmail.comMFC after:	2 weeks

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Sun, 03 Oct 2021 16:59:04 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>2bfd8992 - vnode: move write cluster support data to inodes.</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#2bfd8992</link>
        <description>vnode: move write cluster support data to inodes.The data is only needed by filesystems that1. use buffer cache2. utilize clustering write support.Requested by:	mjgReviewed by:	asomers (previous version), fsu (ext2 parts), mckusickTested by:	phoSponsored by:	The FreeBSD FoundationDifferential Revision:	https://reviews.freebsd.org/D28679

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Mon, 15 Feb 2021 04:35:59 +0000</pubDate>
        <dc:creator>Konstantin Belousov &lt;kib@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>586ee69f - fs: clean up empty lines in .c and .h files</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#586ee69f</link>
        <description>fs: clean up empty lines in .c and .h files

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Tue, 01 Sep 2020 21:18:40 +0000</pubDate>
        <dc:creator>Mateusz Guzik &lt;mjg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b0ecfb42 - fusefs: avoid cache corruption with buggy fuse servers</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#b0ecfb42</link>
        <description>fusefs: avoid cache corruption with buggy fuse serversThe FUSE protocol allows the client (kernel) to cache a file&apos;s size, if theserver (userspace daemon) allows it. A well-behaved daemon obviously shouldnot change a file&apos;s size while a client has it cached. But a buggy daemonmight. If the kernel ever detects that that has happened, then it shouldinvalidate the entire cache for that file. Previously, we would not onlycache stale data, but in the case of a file extension while we had the sizecached, we accidentally extended the cache with zeros.PR:		244178Reported by:	Ben RUBSON &lt;ben.rubson@gmx.com&gt;Reviewed by:	cemMFC after:	2 weeksDifferential Revision:	https://reviews.freebsd.org/D24012

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Wed, 11 Mar 2020 04:29:45 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>388820fb - fusefs: add missing CLTFLAG_MPSAFE annotation</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#388820fb</link>
        <description>fusefs: add missing CLTFLAG_MPSAFE annotation

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Wed, 15 Jan 2020 01:31:28 +0000</pubDate>
        <dc:creator>Mateusz Guzik &lt;mjg@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>427d205c - fusefs: remove superfluous counter_u64_zero</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#427d205c</link>
        <description>fusefs: remove superfluous counter_u64_zeroReported by:	glebiusSponsored by:	The FreeBSD Foundation

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Tue, 06 Aug 2019 00:50:25 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>07e86257 - fusefs: fix the build with some NODEBUG kernels</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#07e86257</link>
        <description>fusefs: fix the build with some NODEBUG kernelssystm.h needs to be included before counter.hSponsored by:	The FreeBSD Foundation

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Sat, 13 Jul 2019 21:41:12 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>8aafc8c3 - [skip ci] update copyright headers in fusefs files</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#8aafc8c3</link>
        <description>[skip ci] update copyright headers in fusefs filesSponsored by:	The FreeBSD Foundation

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Fri, 28 Jun 2019 04:18:10 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>560a55d0 - fusefs: convert statistical sysctls to use counter(9)</title>
        <link>http://172.16.0.5:8080/history/freebsd-14.2/sys/fs/fuse/fuse_node.c#560a55d0</link>
        <description>fusefs: convert statistical sysctls to use counter(9)counter(9) is more performant than using atomic instructions to updatesysctls that just report statistics to userland.Sponsored by:	The FreeBSD Foundation

            List of files:
            /freebsd-14.2/sys/fs/fuse/fuse_node.c</description>
        <pubDate>Thu, 27 Jun 2019 16:30:25 +0000</pubDate>
        <dc:creator>Alan Somers &lt;asomers@FreeBSD.org&gt;</dc:creator>
    </item>
</channel>
</rss>
