| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
time initializing them. This almost finishes centralizing (in-core)
timestamp updates in ufs_itimes().
|
|
|
|
|
|
| |
MNT_WAIT when we mean boolean `true' or check for that value not being
passed. There was no problem in practice because MNT_WAIT had the
magic value of 1.
|
|
|
|
|
| |
as volatile so that there is no chance that the code that it controls
is optimised away.
|
|
|
|
|
|
| |
of timestamps in rev.1.45. The soft updates bug was elsewhere.
Forgotten by: luoqi
|
| |
|
| |
|
|
|
|
|
|
| |
waslocked will go away shortly.
Reviewed by: dg
|
|
|
|
|
|
| |
I/O requests must be marked P_SYSTEM because if it isn't and the system
decides to swap it or (god forbid) kill it, the system stands a good
chance of locking up.
|
|
|
|
|
|
|
|
|
| |
may be revoked, so vnop routines must be careful about accessing
the vnode if they may have blocked.
Fixed marking for update after successfully reading or writing 0
bytes. In this case, POSIX.1 specifies marking if and only if the
requested count is nonzero, but rev.1.86 never marked.
|
|
|
|
| |
own memory allocation.
|
|
|
|
|
| |
the code set the other field in the inode to VNOVAL. This can happen
sometimes on an NFS server.
|
|
|
|
|
|
| |
Hopefully will save others time.
Someone who understands this better might check for correctness.
|
|
|
|
|
| |
( this isn't really an error, but I think it is important to fix the
warning ).
|
| |
|
| |
|
|
|
|
| |
and local variables, goto labels, and functions declared but not defined.
|
|
|
|
| |
to VOP_BMAP(). Don't use uncast NULLs in the same call.
|
|
|
|
|
|
| |
basically do a on-the-fly defragmentation of the FFS filesystem, changing
file block allocations to make them contiguous. Thanks to Kirk McKusick
for providing hints on what needed to be done to get this working.
|
| |
|
| |
|
|
|
|
| |
rather than abusing the list next pointer with a magic number.
|
| |
|
|
|
|
|
|
|
| |
They checked for the magic major number for the "device" behind mfs
mount points. Use a more obvious check for this device.
Debugged by: Andrew Gallatin <gallatin@cs.duke.edu>
|
|
|
|
| |
them.
|
|
|
|
|
|
|
| |
when bdevsw[] became sparse. We still depend on magic to avoid having to
check that (v_rdev) device numbers in vnodes are not NODEV.
Removed redundant `major(dev) < nblkdev' tests instead of updating them.
|
|
|
|
| |
about unused variables, labels and other lint.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
partition that the label ioctl is being done on just because it has
offset 0, since there is no guarantee that such a partition is large
enough to contain the label. Don't use the wrong raw partition (0
instead of RAW_PART).
This fixes problems rewriting bizarre labels (with a nonzero offset
for the 'a' partition) in newfs(8). Such labels shouldn't normally
be used, but creating them was allowed if the ioctl was done on the
raw partition, and sysinstall creates them if the root partition isn't
allocated first.
Note that allowing write access to a partition other than the one that
has been checked for write access doesn't increase security holes
significantly, since write access to any partition already allows
changing the in-core label.
This fix should be in 3.0R. Rev.1.26 of newfs/newfs.c shouldn't be
in 3.0R.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
but when i_effnlink was added to support soft updates, there was only
room for 4 spares. The number of spares was not reduced, so the inode
size became 260 (on i386's), or 512 after rounding up by malloc().
Use one spare field in `struct dinode' instead of the 5th spare field
in the inode and reduced to 4 spares in the inode so that the size is
256 again.
Changed the types of the spares in the inode from int to u_int32_t
so that the inode size has more chance of being <= 256 under other
arches, and downdated ext2fs to match (it was broken to use ints
before rev.1.1).
|
| |
|
|
|
|
| |
Submitted by: peter
|
|
|
|
| |
on cpu type.
|
| |
|
| |
|
|
|
|
|
| |
(in addition to allowing it to be compiled in) and stop overloading
the MFS_ROOT variable to store size information.
|
|
|
|
|
|
|
| |
As a side effect, a few wakeup() calls are added, which might fix some of the
missing vm_page wakeups people have been seeing.
Reviewed by: Doug Rabson <dfr@nlsystems.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem is caused when a directory block is compacted. When this
occurs, softdep_change_directoryentry_offset() is called to relocate each
directory entry and adjust its matching diradd structure, if any, to match
the new location of the entry. The bug is that while
softdep_change_directoryentry_offset() correctly adjusts the offsets of
the diradd structures on the pd_diraddhd[] lists (which are not yet ready
to be committed to disk), it fails to adjust the offsets of the diradd
structures on the pd_pendinghd list (which are ready to be committed to
disk). This causes the dependency structures to be inconsistent with
the buf contents. Now, if the compaction has moved a directory entry to
the same offset as one of the diradd structures on the pd_pendinghd list
*and* a syscall is done that tries to remove this directory entry before
this directory block has been written to disk (which would empty
pd_pendinghd), a sanity check in newdirrem() will call panic() when it
notices that the inode number in the entry that it is to be removed doesn't
match the inode number in the diradd structure with that offset of that
entry.
Reviewed by: Kirk McKusick <mckusick@McKusick.COM>
Submitted by: Don Lewis <Don.Lewis@tsc.tdk.com>
|
|
|
|
|
|
|
| |
happen when an NFS exported filesystem tries to remove a locally
mounted on directory.
PR: kern/7272
Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- don't set the clean flag on unmount of an unclean filesystem that was
(forcibly) mounted rw.
- set the clean flag on rw -> ro update of a mounted initially-clean
filesystem.
- fixed some style bugs (mostly long lines).
This uses the fs_flags field and FS_UNCLEAN state bit which were
introduced in the softdep changes. NetBSD uses extra state bits in
fs_clean.
Reviewed by: luoqui
|
|
|
|
|
|
|
|
|
|
| |
Submitted by: Kirk McKusick <mckusick@McKusick.COM>
Two minor changes are also included,
1. Remove gratuitious checks for error return from vn_lock with LK_RETRY set,
vn_lock should always succeed in these cases.
2. Back out change rev. 1.36->1.37, which unnecessarily makes async mount
a little more unstable. It also keeps us in sync with other BSDs.
Suggested by: Bruce Evans <bde@zeta.org.au>
|
|
|
|
|
| |
buffer. Otherwise some in-core inode changes might be lost, including
important meta data (e.g. size) if softupdates is enabled.
|
|
|
|
| |
and use it as "the currently active" buffer in doing disk sort calculations.
|
|
|
|
|
| |
This clearly needs alot more thought, and we dont need this to hunt
us down in 3.0-RELEASE.
|
|
|
|
| |
code gets executed if it is compiled without optimization.
|
|
|
|
|
|
|
|
|
| |
references to them.
The change a couple of days ago to ignore these numbers in statically
configured vfsconf structs was slightly premature because the cd9660,
cfs, devfs, ext2fs, nfs vfs's still used MOUNT_* instead of the number
in their vfsconf struct.
|
|
|
|
| |
remaining children. Prepare it for MOUNT_UFS going away.
|
|
|
|
|
| |
XXX: we could deallocate the storage, but somebody else will
have to pick up that task.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
device drivers about sectors no longer in use.
Device-drivers receive the call through d_strategy, if they have
D_CANFREE in d_flags.
This allows flash based devices to erase the sectors and avoid
pointlessly carrying them around in compactions.
Reviewed by: Kirk Mckusick, bde
Sponsored by: M-Systems (www.m-sys.com)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clustering is obsolescent technology so hardly anyone noticed. On
a DORS 32160 SCSI drive with 4 tags, read clustering makes very
little difference even for huge sequential reads. However, on a
ZIP SCSI drive with 0 tags, the minimum overhead per block is about
40 msec, so very large clusters must be used to get anywhere near
the maximum transfer rate. Using clusters consisting of 1 8K block
reduces the transfer rate to about 250K/sec. Under msdosfs, missing
read clustering is normal and a cluster size of 1 512 byte block
reduces the transfer rate to about 25K/sec.
Broken in: rev.1.18
|