<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/ufs/ffs, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2026-07-08T05:16:01Z</updated>
<entry>
<title>ufs: Allow read-only mounting of NetBSD FFSv2 WAPBL filesystems</title>
<updated>2026-07-08T05:16:01Z</updated>
<author>
<name>Ricardo Branco</name>
<email>rbranco@suse.de</email>
</author>
<published>2026-06-13T08:26:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3eb80d8d7daf4f14c22dd462d8c4e5b6fc818bd4'/>
<id>urn:sha1:3eb80d8d7daf4f14c22dd462d8c4e5b6fc818bd4</id>
<content type='text'>
Skip UFS2 fs_metaspace upper-bound validation that rejects NetBSD FFSv2
WAPBL filesystems due to differing superblock layouts.

Detect the condition during mount instead and permit read-only mounts
while rejecting read-write mounts with EROFS.  This follows NetBSD's
recommendation for systems without WAPBL support and avoids modifying
unsupported journal metadata.

PR: 296022
Signed-off-by: Ricardo Branco &lt;rbranco@suse.de&gt;
Reviewed by: imp, kirk
Pull Request: https://github.com/freebsd/freebsd-src/pull/2279
</content>
</entry>
<entry>
<title>ffs: do not return ESTALE on attempt to ffs_unotovp() on unlinked inode</title>
<updated>2026-07-03T00:28:23Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2026-07-01T01:14:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c041b82c59e885d106f45454302bad3d9dcc58a7'/>
<id>urn:sha1:c041b82c59e885d106f45454302bad3d9dcc58a7</id>
<content type='text'>
The consequences are:
- for nfs exports and fhopen(2), unlinked but still referenced inodes
  are accessible
- for ffs_vput_pair() with unlock_vp = false, spurious ESTALE is not
  returned when the inode is still alive but unlinked

Note that tmpfs does not return ESTALE for the unlinked nodes.
The same behavior is claimed for Linux in
https://github.com/openzfs/zfs/issues/18699

Reviewed by:	rmacklem
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D57982
</content>
</entry>
<entry>
<title>VOP_VPUT_PAIR(): handle the case when dvp == vp</title>
<updated>2026-06-26T21:45:30Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2026-06-24T18:21:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=be9295deedd1e837ee3645583d07e1dffbe1ead0'/>
<id>urn:sha1:be9295deedd1e837ee3645583d07e1dffbe1ead0</id>
<content type='text'>
Reviewed by:	jah, markj
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D57824
</content>
</entry>
<entry>
<title>vfs: rename vop_mmapped() to vop_update_atime()</title>
<updated>2026-06-23T22:11:55Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2026-06-19T19:52:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8177936ac293210251390e44d109ece0f3868df9'/>
<id>urn:sha1:8177936ac293210251390e44d109ece0f3868df9</id>
<content type='text'>
This reflects the actual functionality of the VOP.  While there, add the
explicit struct timespec argument for the VOP allowing the caller to set
specific atime, not just request an update for it.

Requested by:	rmacklem
Reviewed by:	rmacklem
Discussed with:	jah
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D57681
</content>
</entry>
<entry>
<title>Avoid incorrect UFS1 timestamp corrections when system clock fails at boot.</title>
<updated>2026-06-01T23:48:21Z</updated>
<author>
<name>Kirk McKusick</name>
<email>mckusick@FreeBSD.org</email>
</author>
<published>2026-06-01T23:48:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=553ef188f7ecc23a384bd7ef1f3d5015fb8661da'/>
<id>urn:sha1:553ef188f7ecc23a384bd7ef1f3d5015fb8661da</id>
<content type='text'>
Git 1111a44301da - main - Defer the January 19, 2038 date limit in
UFS1 file systems to February 7, 2106 - did so by changing the UFS1
32-bit signed timestamps to unsigned. With this change, time stamps
from before January 1, 1970 went from being negative numbers to
large positive numbers implying times in the future. When such a
time stamp is encountered when an inode is read into memory or when
it is encountered by fsck, its timestamp is replaced with the
kernel's current time.

Andre Albsmeier reported that he had a machine reboot after a power
failure and the battery that maintained its real-time clock had
died. The result was that the system booted with the time set to
five years earlier (absent a real-time clock value, the boot ROM
used the time that the boot ROM had last been updated). The net
result was that fsck reset the time stamps of all files newer than
five years old to the five year old time.

Andres's original request was for a flag in the file system superblock
to say that there are no timestamps from before 1970 in the file
system, so there shouldn't be anything to fix because of the signed
to unsigned switch. But this assumes that no one every does an rsync
or extracts a tar file or restores a dump that introduces an incorrect
time stamp on their system. So this approach was not taken.

This change compares the system's version of the current time to
the last modification time in the file system superblock. If the
current time is earlier than that time then use the last modification
time in the superblock as the value for the current time. There
should be no files in the file system with times newer than the
last modification time in the superblock.

The superblock time stamp is updated in the in-memory superblock
every time any change is made to anything in the file system. The
superblock is written to the disk every 30 seconds, so it may be
off by up to 30 seconds plus the time it sits in the disk cache
waiting to be written if the system has an unclean shutdown (such
as a power failure). Thus, the worst case scenario with this change
is that files written in the last 30 seconds plus disk cache delay
time before the crash may have their times adjusted back by up to
30 seconds plus the disk cache delay time.

Requested by: Andre Albsmeier
Approved by:  kib
Reviewed by:  kib, imp, Andre Albsmeier
MFC-after:    1 week
Differential Revision: https://reviews.freebsd.org/D57371
</content>
</entry>
<entry>
<title>fix typo: remove duplicate 'the' in ffs_vfsops comment</title>
<updated>2026-04-30T16:29:16Z</updated>
<author>
<name>Felipe Matarazzo</name>
<email>felipemps@protonmail.com</email>
</author>
<published>2026-04-29T16:14:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=82525a8ead6b778f4eb0f7a6a2dbe327fa69fcfe'/>
<id>urn:sha1:82525a8ead6b778f4eb0f7a6a2dbe327fa69fcfe</id>
<content type='text'>
Signed-off-by: Felipe Matarazzo &lt;felipemps@protonmail.com&gt;
Reviewed-by: ngie
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2174
</content>
</entry>
<entry>
<title>ffs snapshots: pass valid args to vn_start_write</title>
<updated>2026-02-25T16:44:38Z</updated>
<author>
<name>Eric van Gyzen</name>
<email>vangyzen@FreeBSD.org</email>
</author>
<published>2026-02-25T16:26:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=722fbfef0abb4de31fb91fd35f9b85fd534725c4'/>
<id>urn:sha1:722fbfef0abb4de31fb91fd35f9b85fd534725c4</id>
<content type='text'>
If the initial no-wait vn_start_write fails, we pass the old
PCATCH flag to the following sleepable vn_start_write.
Following a75d1ddd74, that flag should be V_PCATCH.

Sponsored by:		Dell Inc.
Differential Revision:	https://reviews.freebsd.org/D55512
</content>
</entry>
<entry>
<title>ffs_truncate: correct INVARIANTS panic debug output</title>
<updated>2025-10-15T04:03:04Z</updated>
<author>
<name>Ryan Libby</name>
<email>rlibby@FreeBSD.org</email>
</author>
<published>2025-10-15T04:03:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a0ea4c04b5269ac138a3cf551047076472c6028e'/>
<id>urn:sha1:a0ea4c04b5269ac138a3cf551047076472c6028e</id>
<content type='text'>
Reported by:	GCC -Warray-bounds
Reviewed by:	mckusick
Differential Revision:	https://reviews.freebsd.org/D53037
</content>
</entry>
<entry>
<title>vfs: retire the NULLVP macro</title>
<updated>2025-09-27T04:00:59Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2025-09-27T02:07:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=01c8e2e33df81b242d73a23de49a6b61f33c24c1'/>
<id>urn:sha1:01c8e2e33df81b242d73a23de49a6b61f33c24c1</id>
<content type='text'>
The kernel was already mostly using plain NULL, just whack it and be
doen with the legacy.

Churn generated with coccinelle:
@@
@@

- NULLVP
+ NULL
</content>
</entry>
<entry>
<title>ffs(3): Fix a typo in a source code comment</title>
<updated>2025-08-25T08:37:27Z</updated>
<author>
<name>Gordon Bergling</name>
<email>gbe@FreeBSD.org</email>
</author>
<published>2025-08-25T08:37:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cc5623d8bda6ac24faf1c18ba9712e7f78dc127b'/>
<id>urn:sha1:cc5623d8bda6ac24faf1c18ba9712e7f78dc127b</id>
<content type='text'>
- s/fist/first/

MFC after:	3 days
</content>
</entry>
</feed>
