| #
6fa205a6
|
| 08-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
nullfs: add nounixbypass mount option
The option, when set, disables bypassing the unix socket vnode down to the lower mp, effectively preventing connection to nullfs unix socket from being acceptab
nullfs: add nounixbypass mount option
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
show more ...
|
| #
419f2fe6
|
| 08-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
nullfs: add a helper for testing if vnode belongs to a nullfs mount
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D52983
|
| #
035f1971
|
| 08-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
fs/nullfs/null.h: put first definition after headers include
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D52983
|
| #
84f981ba
|
| 06-Oct-2025 |
Mateusz Guzik <mjg@FreeBSD.org> |
nullfs: shrink null_node to 32 bytes
|
| #
641a5823
|
| 01-Oct-2025 |
Mateusz Guzik <mjg@FreeBSD.org> |
nullfs: avoid the interlock in null_lock with smr
This largely eliminates contention on the vnode interlock.
Note this still does not scale, to be fixed(tm).
Reviewed by: kib Tested by: pho (pre
nullfs: avoid the interlock in null_lock with smr
This largely eliminates contention on the vnode interlock.
Note this still does not scale, to be fixed(tm).
Reviewed by: kib Tested by: pho (previous version) Differential Revision: https://reviews.freebsd.org/D38761
show more ...
|
| #
249ec853
|
| 30-Sep-2025 |
Mateusz Guzik <mjg@FreeBSD.org> |
nullfs: smr-protected hash lookup
Vast majority of real-world contention on the hash comes from lookups, notably seen during highly parallel poudriere runs.
Lockless lookup largely alleviates the p
nullfs: smr-protected hash lookup
Vast majority of real-world contention on the hash comes from lookups, notably seen during highly parallel poudriere runs.
Lockless lookup largely alleviates the problem.
Reviewed by: kib Tested by: pho (previous version) Differential Revision: https://reviews.freebsd.org/D38761
show more ...
|
| #
29363fb4
|
| 23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl s
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script.
Sponsored by: Netflix
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
c746ed72
|
| 12-Jun-2021 |
Jason A. Harmening <jah@FreeBSD.org> |
Allow stacked filesystems to be recursively unmounted
In certain emergency cases such as media failure or removal, UFS will initiate a forced unmount in order to prevent dirty buffers from accumulat
Allow stacked filesystems to be recursively unmounted
In certain emergency cases such as media failure or removal, UFS will initiate a forced unmount in order to prevent dirty buffers from accumulating against the no-longer-usable filesystem. The presence of a stacked filesystem such as nullfs or unionfs above the UFS mount will prevent this forced unmount from succeeding.
This change addreses the situation by allowing stacked filesystems to be recursively unmounted on a taskqueue thread when the MNT_RECURSE flag is specified to dounmount(). This call will block until all upper mounts have been removed unless the caller specifies the MNT_DEFERRED flag to indicate the base filesystem should also be unmounted from the taskqueue.
To achieve this, the recently-added vfs_pin_from_vp()/vfs_unpin() KPIs have been combined with the existing 'mnt_uppers' list used by nullfs and renamed to vfs_register_upper_from_vp()/vfs_unregister_upper(). The format of the mnt_uppers list has also been changed to accommodate filesystems such as unionfs in which a given mount may be stacked atop more than one lower mount. Additionally, management of lower FS reclaim/unlink notifications has been split into a separate list managed by a separate set of KPIs, as registration of an upper FS no longer implies interest in these notifications.
Reviewed by: kib, mckusick Tested by: pho Differential Revision: https://reviews.freebsd.org/D31016
show more ...
|
| #
bb1d0df5
|
| 29-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357179 through r357269.
|
| #
5fc9e11c
|
| 28-Jan-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Save lower root vnode in nullfs mnt data instead of upper.
Nullfs needs to know the root vnode of the lower fs during the operation. Currently it caches the upper vnode of it, which is also the roo
Save lower root vnode in nullfs mnt data instead of upper.
Nullfs needs to know the root vnode of the lower fs during the operation. Currently it caches the upper vnode of it, which is also the root of the nullfs mount. On unmount, nullfs calls vflush() with rootrefs == 1, and aborts non-forced unmount if there are any more vnodes instantiated during vflush(). This means that the reference to the root vnode after failed non-forced unmount could be lost and nullm_rootvp points to the freed memory.
Fix it by storing the reference for lower vnode instead, which is kept intact during vflush(). nullfs_root() now instantiates the upper vnode of lower root. Care about VV_ROOT flag in null_nodeget().
Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
| #
6fa205a6
|
| 08-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
nullfs: add nounixbypass mount option
The option, when set, disables bypassing the unix socket vnode down to the lower mp, effectively preventing connection to nullfs unix socket from being acceptab
nullfs: add nounixbypass mount option
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
show more ...
|
| #
419f2fe6
|
| 08-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
nullfs: add a helper for testing if vnode belongs to a nullfs mount
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D52983
|
| #
035f1971
|
| 08-Oct-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
fs/nullfs/null.h: put first definition after headers include
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D52983
|
| #
84f981ba
|
| 06-Oct-2025 |
Mateusz Guzik <mjg@FreeBSD.org> |
nullfs: shrink null_node to 32 bytes
|
| #
641a5823
|
| 01-Oct-2025 |
Mateusz Guzik <mjg@FreeBSD.org> |
nullfs: avoid the interlock in null_lock with smr
This largely eliminates contention on the vnode interlock.
Note this still does not scale, to be fixed(tm).
Reviewed by: kib Tested by: pho (pre
nullfs: avoid the interlock in null_lock with smr
This largely eliminates contention on the vnode interlock.
Note this still does not scale, to be fixed(tm).
Reviewed by: kib Tested by: pho (previous version) Differential Revision: https://reviews.freebsd.org/D38761
show more ...
|
| #
249ec853
|
| 30-Sep-2025 |
Mateusz Guzik <mjg@FreeBSD.org> |
nullfs: smr-protected hash lookup
Vast majority of real-world contention on the hash comes from lookups, notably seen during highly parallel poudriere runs.
Lockless lookup largely alleviates the p
nullfs: smr-protected hash lookup
Vast majority of real-world contention on the hash comes from lookups, notably seen during highly parallel poudriere runs.
Lockless lookup largely alleviates the problem.
Reviewed by: kib Tested by: pho (previous version) Differential Revision: https://reviews.freebsd.org/D38761
show more ...
|
| #
29363fb4
|
| 23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl s
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script.
Sponsored by: Netflix
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
c746ed72
|
| 12-Jun-2021 |
Jason A. Harmening <jah@FreeBSD.org> |
Allow stacked filesystems to be recursively unmounted
In certain emergency cases such as media failure or removal, UFS will initiate a forced unmount in order to prevent dirty buffers from accumulat
Allow stacked filesystems to be recursively unmounted
In certain emergency cases such as media failure or removal, UFS will initiate a forced unmount in order to prevent dirty buffers from accumulating against the no-longer-usable filesystem. The presence of a stacked filesystem such as nullfs or unionfs above the UFS mount will prevent this forced unmount from succeeding.
This change addreses the situation by allowing stacked filesystems to be recursively unmounted on a taskqueue thread when the MNT_RECURSE flag is specified to dounmount(). This call will block until all upper mounts have been removed unless the caller specifies the MNT_DEFERRED flag to indicate the base filesystem should also be unmounted from the taskqueue.
To achieve this, the recently-added vfs_pin_from_vp()/vfs_unpin() KPIs have been combined with the existing 'mnt_uppers' list used by nullfs and renamed to vfs_register_upper_from_vp()/vfs_unregister_upper(). The format of the mnt_uppers list has also been changed to accommodate filesystems such as unionfs in which a given mount may be stacked atop more than one lower mount. Additionally, management of lower FS reclaim/unlink notifications has been split into a separate list managed by a separate set of KPIs, as registration of an upper FS no longer implies interest in these notifications.
Reviewed by: kib, mckusick Tested by: pho Differential Revision: https://reviews.freebsd.org/D31016
show more ...
|
| #
bb1d0df5
|
| 29-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357179 through r357269.
|
| #
5fc9e11c
|
| 28-Jan-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Save lower root vnode in nullfs mnt data instead of upper.
Nullfs needs to know the root vnode of the lower fs during the operation. Currently it caches the upper vnode of it, which is also the roo
Save lower root vnode in nullfs mnt data instead of upper.
Nullfs needs to know the root vnode of the lower fs during the operation. Currently it caches the upper vnode of it, which is also the root of the nullfs mount. On unmount, nullfs calls vflush() with rootrefs == 1, and aborts non-forced unmount if there are any more vnodes instantiated during vflush(). This means that the reference to the root vnode after failed non-forced unmount could be lost and nullm_rootvp points to the freed memory.
Fix it by storing the reference for lower vnode instead, which is kept intact during vflush(). nullfs_root() now instantiates the upper vnode of lower root. Care about VV_ROOT flag in null_nodeget().
Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
| #
82725ba9
|
| 23-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r325999 through r326131.
|
| #
51369649
|
| 20-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 3-Clause license.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for
sys: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 3-Clause license.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point.
show more ...
|
| #
348238db
|
| 01-Mar-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r314420 through r314481.
|