| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Mitigate several problems with the softdep_request_cleanup() on busy
host.
Approved by: re (gjb)
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure that cached struct thread does not keep spurious td_su
reference on an UFS mount point.
MFC r319519:
Clean possible td_su reference on the struct mount being unmounted as
the last step of ffs_unmount().
Approved by: re (gjb)
|
|
|
|
| |
Remove spl() calls from UFS code.
|
|
|
|
| |
Do not leak mount references for dying threads.
|
|
|
|
| |
Use type-independent formats for printing nlink_t and ino_t.
|
|
|
|
|
| |
Provide simple mutual exclusion between mount point update and unmount.
In the update path in ffs_mount(), drop vfs_busy() reference around namei().
|
|
|
|
|
| |
Avoid possible overflow when calclating malloc size for auxillary
data structure sizes when mounting and reloading UFS/FFS filesystems.
|
|
|
|
|
|
|
| |
Bug 180894 reports that rm -rf on a directory causes kernel panic and reboot.
Return EINVAL rather than panic for low directory link count.
PR: 180894
|
|
|
|
|
|
|
| |
Generalize UFS buffer pager.
MFC r308442:
Tweaks for the buffer pager.
|
|
|
|
|
|
| |
Add FFS pager, which uses buffer cache read operation to validate pages.
For now, the pager is disabled by default in the stable branch.
|
|
|
|
|
|
|
|
|
|
| |
Add two new macros, SLIST_CONCAT and LIST_CONCAT.
MFC r304239:
Bug 211013 reports that a write error to a UFS filesystem running
with softupdates panics the kernel.
PR: 211013
|
|
|
|
| |
Be more strict when selecting between snapshot/regular mount.
|
|
|
|
|
|
|
| |
Reduce size of ufs inode.
MFC r305903:
Fix libprocstat build after r305902.
|
|
|
|
| |
On rename, do not perform truncation of dirhash if the vnode truncation failed.
|
|
|
|
| |
Do not leak transient ENOLCK error from flush_newblk_dep() loop.
|
|
|
|
|
| |
When logging unlikely UFS_TRUNCATE() failure in ufs_direnter(),
include error code.
|
|
|
|
| |
When extending directory inode in ufs_direnter(), adjust i_endoff.
|
|
|
|
|
|
| |
In dqsync(), when called from quotactl(), um_quotas entry might appear
cleared since nothing prevents completion of the parallel quotaoff.
There is nothing to sync in this case, and no reason to panic.
|
|
|
|
|
| |
In softdep_prealloc(), return early not only for snapshots, but for
the quota files as well.
|
|
|
|
|
|
| |
There is no need to upgrade the last dvp lock on lookups for modifying
operations. Instead of upgrading, assert that the lock is exclusive.
Explain the cause in comments.
|
|
|
|
|
| |
Partially lift suspension when ffs_reload() finished with cgs and
going to re-read inodes.
|
|
|
|
| |
Implement VOP_FDATASYNC() for UFS.
|
|
|
|
| |
Eliminate vprint().
|
|
|
|
|
| |
In UFS_BALLOC(), invalidate pages of indirect buffers on failed block
allocation unwinding.
|
|
|
|
|
|
|
|
| |
On unwind after failed block allocation in ffs_balloc_ufs{1,2}, assert
that recorded allocated blocks numbers match the physical block numbers
of dandling buffers which are released.
When finally freeing the blocks during unwind, assert that dandling
buffers where not re-allocated.
|
|
|
|
|
| |
When looking up dandling buffers for unwing after failing block
allocation in UFS_BALLOC(), there is no need to map them.
|
|
|
|
|
| |
When block allocation fails in UFS_BALLOC(), and the volume does not
have SU enabled, there is no point in calling softdep_request_cleanup().
|
|
|
|
|
| |
In ffs_balloc_ufs{1,2} routines, assert that unwind records do not
overflow local arrays.
|
|
|
|
|
|
|
| |
Ensure that the UFS directory vnode' vm_object is properly sized
before UFS_BALLOC() is called.
Approved by: re (delphij)
|
|
|
|
|
|
|
|
| |
i_gen if it's zero rather than a divide by 2.
With inputs from delphij, mckusick, rmacklem
Reviewed by: mckusick
|
|
|
|
| |
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
volumes. Treat the field as a semaphore protecting availability of
the device for mounting. Do no access devvp->v_rdev without the vnode
lock owned.
Protect change of the devvp->v_bufobj bo_ops vector with the vnode
lock.
Reviewed by: bde
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
| |
opened in O_SYNC mode, at least for UFS. This also handles
truncation, done due to the O_SYNC | O_TRUNC flags combination to
open(2), in synchronous way.
Noted by: bde
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
| |
remounted to writeable after initial read-only. Assign to
dev->si_mountpt earlier to account the accesses done at the mount
time.
Based on submission by: bde
MFC after: 1 week
|
|
|
|
|
|
|
| |
update from the final ffs_update().
Noted by: bde
MFC after: 1 week
|
|
|
|
|
|
|
| |
not pass IO_SYNC to ffs_truncate() unneccessary.
Submitted by: bde
MFC after: 1 week
|
|
|
|
|
| |
Submitted by: bde
MFC after: 1 week
|
|
|
|
|
| |
Submitted by: bde
MFC after: 1 week
|
|
|
|
| |
No functional change.
|
|
|
|
|
|
|
|
|
|
| |
Support can be verified via `feature_present("ufs_extattr")`, etc.
Differential Revision: https://reviews.freebsd.org/D6053
MFC after: 2 weeks
Relnotes: yes
Reviewed by: asomers, kib
Sponsored by: EMC / Isilon Storage Division
|
|
|
|
|
|
|
|
|
|
| |
rounddown2 tends to produce longer lines than the original code
and when the code has a high indentation level it was not really
advantageous to do the replacement.
This tries to strike a balance between readability using the macros
and flexibility of having the expressions, so not everything is
converted.
|
|
|
|
|
|
|
|
|
|
| |
While here also do late initialization of the variables we are
changing.
Found with devel/coccinelle.
Reviewed by: mckusick
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for limiting disk (actually filesystem) IO.
Note that in some cases these limits are not quite precise. It's ok,
as long as it's within some reasonable bounds.
Testing - and review of the code, in particular the VFS and VM parts - is
very welcome.
MFC after: 1 month
Relnotes: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D5080
|
|
|
|
|
| |
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into per-mount taskqueue with the private taskqueue processing thread.
This allows to drain the taskqueue on unmount, to ensure that all
TRIMs are finished before mount structures are freed.
But just draining the taskqueue where TRIM biodone geom-up completions
are processed is not enough, since ffs_blkfree(), called by the task,
might result in more writes. Count inflight delayed blkfree's and
pause() unmount until the counter drains as well.
Reported by: Nick Evans <nevans@talkpoint.com>
Tested by: Nick Evans <nevans@talkpoint.com>, pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
|
|
|
|
|
| |
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
|
|
|
|
|
|
|
|
|
| |
expects that the loop is always exited with the SU lock owned, even on
error.
Reported and tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
|
|
|
|
|
|
|
|
|
| |
allocated. When shortening the length of a file in which the new end
of the file contains a hole, the hole must have a block allocated.
Reported by: Maxim Sobolev
Reviewed by: kib
Tested by: Peter Holm
|
|
|
|
|
| |
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
crash a server that has exported UFS2 by presenting a filehandle
with an inode number that references an uninitialized inode in a
cylinder group. The problem is that UFS2 only initializes blocks
of inodes as they are first allocated and ffs_fhtovp() does not
validate that the inode is in a range of inodes that have been
initialized. Attempting to read an uninitialized inode gets random
data from the disk. When the kernel tries to interpret it as an
inode, panics often arise.
Reported by: Christos Zoulas (from NetBSD)
Reviewed by: kib
|