#
a92a971b |
| 16-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: remove the thread argument from vget
It was already asserted to be curthread.
Semantic patch:
@@
expression arg1, arg2, arg3;
@@
- vget(arg1, arg2, arg3) + vget(arg1, arg2)
|
#
1f7104d7 |
| 14-Jun-2020 |
Rick Macklem <rmacklem@FreeBSD.org> |
Fix export_args ex_flags field so that is 64bits, the same as mnt_flags.
Since mnt_flags was upgraded to 64bits there has been a quirk in "struct export_args", since it hold a copy of mnt_flags in e
Fix export_args ex_flags field so that is 64bits, the same as mnt_flags.
Since mnt_flags was upgraded to 64bits there has been a quirk in "struct export_args", since it hold a copy of mnt_flags in ex_flags, which is an "int" (32bits). This happens to currently work, since all the flag bits used in ex_flags are defined in the low order 32bits. However, new export flags cannot be defined. Also, ex_anon is a "struct xucred", which limits it to 16 additional groups. This patch revises "struct export_args" to make ex_flags 64bits and replaces ex_anon with ex_uid, ex_ngroups and ex_groups (which points to a groups list, so it can be malloc'd up to NGROUPS in size. This requires that the VFS_CHECKEXP() arguments change, so I also modified the last "secflavors" argument to be an array pointer, so that the secflavors could be copied in VFS_CHECKEXP() while the export entry is locked. (Without this patch VFS_CHECKEXP() returns a pointer to the secflavors array and then it is used after being unlocked, which is potentially a problem if the exports entry is changed. In practice this does not occur when mountd is run with "-S", but I think it is worth fixing.)
This patch also deleted the vfs_oexport_conv() function, since do_mount_update() does the conversion, as required by the old vfs_cmount() calls.
Reviewed by: kib, freqlabs Relnotes: yes Differential Revision: https://reviews.freebsd.org/D25088
show more ...
|
Revision tags: release/11.4.0 |
|
#
cc3593fb |
| 13-Jan-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: rework vnode list management
The current notion of an active vnode is eliminated.
Vnodes transition between 0<->1 hold counts all the time and the associated traversal between different lists
vfs: rework vnode list management
The current notion of an active vnode is eliminated.
Vnodes transition between 0<->1 hold counts all the time and the associated traversal between different lists induces significant scalability problems in certain workloads.
Introduce a global list containing all allocated vnodes. They get unlinked only when UMA reclaims memory and are only requeued when hold count reaches 0.
Sample result from an incremental make -s -j 104 bzImage on tmpfs: stock: 118.55s user 3649.73s system 7479% cpu 50.382 total patched: 122.38s user 1780.45s system 6242% cpu 30.480 total
Reviewed by: jeff Tested by: pho (in a larger patch, previous version) Differential Revision: https://reviews.freebsd.org/D22997
show more ...
|
#
b249ce48 |
| 03-Jan-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: drop the mostly unused flags argument from VOP_UNLOCK
Filesystems which want to use it in limited capacity can employ the VOP_UNLOCK_FLAGS macro.
Reviewed by: kib (previous version) Differenti
vfs: drop the mostly unused flags argument from VOP_UNLOCK
Filesystems which want to use it in limited capacity can employ the VOP_UNLOCK_FLAGS macro.
Reviewed by: kib (previous version) Differential Revision: https://reviews.freebsd.org/D21427
show more ...
|
#
f342b91c |
| 01-Jan-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
msdosfs: add a missing MNT_VNODE_FOREACH_ALL_ABORT to msdosfs_sync
|
Revision tags: release/12.1.0 |
|
#
61c1328e |
| 13-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352105 through r352307.
|
#
aaa38524 |
| 11-Sep-2019 |
Conrad Meyer <cem@FreeBSD.org> |
buf: Add B_INVALONERR flag to discard data
Setting the B_INVALONERR flag before a synchronous write causes the buf cache to forcibly invalidate contents if the write fails (BIO_ERROR).
This is inte
buf: Add B_INVALONERR flag to discard data
Setting the B_INVALONERR flag before a synchronous write causes the buf cache to forcibly invalidate contents if the write fails (BIO_ERROR).
This is intended to be used to allow layers above the buffer cache to make more informed decisions about when discarding dirty buffers without successful write is acceptable.
As a proof of concept, use in msdosfs to handle failures to mark the on-disk 'dirty' bit during rw mount or ro->rw update.
Extending this to other filesystems is left as future work.
PR: 210316 Reviewed by: kib (with objections) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D21539
show more ...
|
#
f993ed2f |
| 09-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r351732 through r352104.
|
#
454409a3 |
| 06-Sep-2019 |
Conrad Meyer <cem@FreeBSD.org> |
msdosfs: Remove redundant brelse() after r294954
Same automation.
No functional change.
|
Revision tags: release/11.3.0 |
|
#
8ec22c4d |
| 21-Dec-2018 |
Bruce Evans <bde@FreeBSD.org> |
Quick fix for initialization of mnt_iosize_max. (This limit controls mainly clustering and read-ahead.) Copy the initialization from ffs, and also copy a couple of lines of ffs's nearby style for i
Quick fix for initialization of mnt_iosize_max. (This limit controls mainly clustering and read-ahead.) Copy the initialization from ffs, and also copy a couple of lines of ffs's nearby style for initialization order and whitespace.
A correct fix would de-duplicate the initialization and fix bitrot in it instead of adding another instance of the duplication. Complications to use the size preferred by the device have been reduced to hard-coding slightly pessimal and/or inconsistent defaults, using large code that was almost needed to support the complications.
For msdosfs, the result was that mnt_iosize_max was DFTLPHYS (64K) but is now MAXPHYS (128K).
show more ...
|
Revision tags: release/12.0.0 |
|
#
14b841d4 |
| 11-Aug-2018 |
Kyle Evans <kevans@FreeBSD.org> |
MFH @ r337607, in preparation for boarding
|
#
bbd7a929 |
| 04-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r336870 through r337285, and resolve conflicts.
|
#
195e6c50 |
| 31-Jul-2018 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: trim EOL whitespace
|
Revision tags: release/11.2.0 |
|
#
d63027b6 |
| 27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/fs: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error
sys/fs: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task.
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.
show more ...
|
#
c2c014f2 |
| 07-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r323559 through r325504.
|
#
0a8f81bc |
| 22-Oct-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r324837
While here, diff reduce some of the changes in sys/boot by moving MK_COVERAGE=no to sys/boot/Makefile.inc .
|
#
027bebe8 |
| 19-Oct-2017 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: fix build with MSDOSFS_DEBUG
Inspired by a patch submission by longwitz@incore.de with many changes for ino64 in HEAD.
PR: 199152 MFC after: 2 weeks Sponsored by: The FreeBSD Foundation
|
Revision tags: release/10.4.0, release/11.1.0 |
|
#
686fb94a |
| 10-Jun-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r319548 through r319778.
|
#
40373cf5 |
| 09-Jun-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Remove msdosfs -o large support.
Its purpose was to translate the values for msdosfs inode numbers, which is calculated from the msdosfs structures describing the file, into the range representable
Remove msdosfs -o large support.
Its purpose was to translate the values for msdosfs inode numbers, which is calculated from the msdosfs structures describing the file, into the range representable by 32bit ino_t. The translation acted for filesystems larger than 128Gb, it reserved the range 0xf0000000 (FILENO_FIRST_DYN) to UINT32_MAX and remembered some arbitrary translation of ino >= FILENO_FIRST_DYN into this range. It consumed memory that could be only freed by unmount, and the translation was not stable across remounts.
With ino_t type extended to 64 bit, there is no such issue and values can be returned without compaction to 32bit. That is, for the native environments, the translation layer is not necessary and adds significant undeserved code complexity. For compat ABIs which use 32bit ino_t, the vfs.ino64_trunc_error sysctl provides some measures to soften the failure mode when inode numbers truncation is not safe.
Discussed with: bde Sponsored by: The FreeBSD Foundation
show more ...
|
#
27c24068 |
| 22-May-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r318560 through r318657.
|
#
9287dbaa |
| 21-May-2017 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: capitalize FAT appropriately
Diff reduction with NetBSD, including some nearby minor whitespace or style fixes.
Obtained from: NetBSD Sponsored by: The FreeBSD Foundation
|
#
ea1e967c |
| 19-May-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r318380 through r318559.
|
#
23c53312 |
| 19-May-2017 |
Ed Maste <emaste@FreeBSD.org> |
msdosfs: use C99 types
General cleanup, for diff reduction with NetBSD and future use by FAT support in makefs.
Submitted by: Siva Mahadevan <smahadevan@freebsdfoundation.org> Obtained from: NetBSD
msdosfs: use C99 types
General cleanup, for diff reduction with NetBSD and future use by FAT support in makefs.
Submitted by: Siva Mahadevan <smahadevan@freebsdfoundation.org> Obtained from: NetBSD Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D10821
show more ...
|
#
02ebdc78 |
| 31-Oct-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r307736 through r308146.
|
#
2aa39445 |
| 28-Oct-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Enable vn_io_fault() deadlock avoidance for msdosfs.
Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
|