<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/fs/nullfs, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>VOP_RENAME(9): add flags argument</title>
<updated>2026-03-05T23:46:53+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2026-02-26T18:22:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e486066cf48a89ba87fab6b3d2b56f271f50439b'/>
<id>e486066cf48a89ba87fab6b3d2b56f271f50439b</id>
<content type='text'>
Reviewed by:	markj
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D55539
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed by:	markj
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D55539
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs: Fix handling of doomed vnodes in nullfs_unlink_lowervp()</title>
<updated>2026-02-25T15:31:30+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2026-02-25T15:31:30+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=8b64d46fab87af3ae062901312187f3a04ad2d67'/>
<id>8b64d46fab87af3ae062901312187f3a04ad2d67</id>
<content type='text'>
nullfs_unlink_lowervp() is called with the lower vnode locked, so the
nullfs vnode is locked too.  The following can occur:
1. the vunref() call decrements the usecount 2-&gt;1,
2. a different thread calls vrele() on the vnode, decrements the
   usecount 0-&gt;1, then blocks on the vnode lock,
3. the first thread tests vp-&gt;v_usecount == 0 and observes that it is
   true,
4. the first thread incorrectly unlocks the lower vnode.

Fix this by testing VN_IS_DOOMED directly.  Since
nullfs_unlink_lowervp() holds the vnode lock, the value of the
VIRF_DOOMED flag is stable.

Thanks to leres@ for patiently helping to track this down.

PR:		288345
MFC after:	1 week
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D55446
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nullfs_unlink_lowervp() is called with the lower vnode locked, so the
nullfs vnode is locked too.  The following can occur:
1. the vunref() call decrements the usecount 2-&gt;1,
2. a different thread calls vrele() on the vnode, decrements the
   usecount 0-&gt;1, then blocks on the vnode lock,
3. the first thread tests vp-&gt;v_usecount == 0 and observes that it is
   true,
4. the first thread incorrectly unlocks the lower vnode.

Fix this by testing VN_IS_DOOMED directly.  Since
nullfs_unlink_lowervp() holds the vnode lock, the value of the
VIRF_DOOMED flag is stable.

Thanks to leres@ for patiently helping to track this down.

PR:		288345
MFC after:	1 week
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D55446
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs: add nounixbypass mount option</title>
<updated>2025-10-09T22:47:36+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2025-10-08T15:47:15+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=6fa205a6233fea7c41ba0306c778bc5cab37ce7d'/>
<id>6fa205a6233fea7c41ba0306c778bc5cab37ce7d</id>
<content type='text'>
The option, when set, disables bypassing the unix socket vnode down
to the lower mp, effectively preventing connection to nullfs unix
socket from being acceptable from the lower mp (and vice versa).

This is done by providing a vop vector that stops bypass for unp-related
VOPs.  I believe that VFS_VOP_VECTOR_REGISTER() does the right thing
there regardless of the order of initialization.

Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The option, when set, disables bypassing the unix socket vnode down
to the lower mp, effectively preventing connection to nullfs unix
socket from being acceptable from the lower mp (and vice versa).

This is done by providing a vop vector that stops bypass for unp-related
VOPs.  I believe that VFS_VOP_VECTOR_REGISTER() does the right thing
there regardless of the order of initialization.

Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs_mount: use symbols instead of string literals for cache mount options</title>
<updated>2025-10-09T22:47:22+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2025-10-08T15:44:59+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=8e6f6a5fbde78bd8d19445ee6ebaf00b8f4f5aa9'/>
<id>8e6f6a5fbde78bd8d19445ee6ebaf00b8f4f5aa9</id>
<content type='text'>
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs: add a helper for testing if vnode belongs to a nullfs mount</title>
<updated>2025-10-09T22:47:05+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2025-10-08T15:42:27+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=419f2fe6b70b1a409bf7eca7020d7c745558690f'/>
<id>419f2fe6b70b1a409bf7eca7020d7c745558690f</id>
<content type='text'>
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</pre>
</div>
</content>
</entry>
<entry>
<title>fs/nullfs/null.h: put first definition after headers include</title>
<updated>2025-10-09T22:46:40+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2025-10-08T15:48:17+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=035f1971ade4396d6f5d5b48f353030f559a0a5f'/>
<id>035f1971ade4396d6f5d5b48f353030f559a0a5f</id>
<content type='text'>
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D52983
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs: fix up build with INVARIANTS after previous</title>
<updated>2025-10-06T19:22:29+00:00</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2025-10-06T19:21:38+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0ecbc335daa8caac8b5952d83e821533c99de6ea'/>
<id>0ecbc335daa8caac8b5952d83e821533c99de6ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs: shrink null_node to 32 bytes</title>
<updated>2025-10-06T18:23:01+00:00</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2025-10-06T17:59:17+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=84f981ba57e77bd3c3d0fbf1469ce51bfd132a6b'/>
<id>84f981ba57e77bd3c3d0fbf1469ce51bfd132a6b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs: Slightly reduce contention by reducing concurrent sections</title>
<updated>2025-10-06T15:21:45+00:00</updated>
<author>
<name>Olivier Certner</name>
<email>olce@FreeBSD.org</email>
</author>
<published>2025-10-06T13:22:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=09f925b57aeb171318a9d54df500bf22b4cdd986'/>
<id>09f925b57aeb171318a9d54df500bf22b4cdd986</id>
<content type='text'>
In null_lock_prep_with_smr(), initialize 'lvp' outside of the
SMR-protected section.

In null_lock(), if after locking the lower vnode we notice that we have
been reclaimed, we have to unlock the lower vnode and then relock our
own now that the lock isn't shared anymore.  Call VOP_UNLOCK() on the
lower vnode as soon as this condition is known.

This applies comments from D38761, one of which was missed and the other
added too late.

Reviewed by:    kib
MFC with:       641a58239520 ("nullfs: avoid the interlock in null_lock with smr")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52935
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In null_lock_prep_with_smr(), initialize 'lvp' outside of the
SMR-protected section.

In null_lock(), if after locking the lower vnode we notice that we have
been reclaimed, we have to unlock the lower vnode and then relock our
own now that the lock isn't shared anymore.  Call VOP_UNLOCK() on the
lower vnode as soon as this condition is known.

This applies comments from D38761, one of which was missed and the other
added too late.

Reviewed by:    kib
MFC with:       641a58239520 ("nullfs: avoid the interlock in null_lock with smr")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52935
</pre>
</div>
</content>
</entry>
<entry>
<title>nullfs: Fix some style after recent changes</title>
<updated>2025-10-06T15:21:40+00:00</updated>
<author>
<name>Olivier Certner</name>
<email>olce@FreeBSD.org</email>
</author>
<published>2025-10-06T12:48:24+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c8141e273a3eaf2f3fa05e9e5c2407c9538dd8f8'/>
<id>c8141e273a3eaf2f3fa05e9e5c2407c9538dd8f8</id>
<content type='text'>
In 'nullfs_subr.c':
- Sort the headers.
- Use '__func__' in preference to the function's name in an assertion.

This applies comments from D38761, one of which was missed and the other
added too late.

Reviewed by:    kib
MFC with:       249ec85352b5 ("nullfs: smr-protected hash lookup")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52935
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In 'nullfs_subr.c':
- Sort the headers.
- Use '__func__' in preference to the function's name in an assertion.

This applies comments from D38761, one of which was missed and the other
added too late.

Reviewed by:    kib
MFC with:       249ec85352b5 ("nullfs: smr-protected hash lookup")
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D52935
</pre>
</div>
</content>
</entry>
</feed>
