| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
On LP64 struct ifid is 64-bit aligned while struct fid is 32-bit aligned
so on architectures with strict alignment requirements we can't just simply
cast the latter to the former but need to copy it bytewise instead.
PR: 143010
Approved by: re (kib)
Notes:
svn path=/stable/7/; revision=203326
|
| |
|
|
|
|
|
|
|
|
|
| |
Do not decrement pfs_vncache_entries for the vnode that was not in the
list.
Reminded by: des
Approved by: re (kensmith)
Notes:
svn path=/stable/7/; revision=203089
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new internal mount flag (MNTK_EXTENDED_SHARED) to indicate that a
filesystem supports additional operations using shared vnode locks.
Currently this is used to enable shared locks for open() and close() of
read-only file descriptors.
- When an ISOPEN namei() request is performed with LOCKSHARED, use a
shared vnode lock for the leaf vnode only if the mount point has the
extended shared flag set.
- Set LOCKSHARED in vn_open_cred() for requests that specify O_RDONLY but
not O_CREAT.
- Use a shared vnode lock around VOP_CLOSE() if the file was opened with
O_RDONLY and the mountpoint has the extended shared flag set.
- Adjust md(4) to upgrade the vnode lock on the vnode it gets back from
vn_open() since it now may only have a shared vnode lock.
- Don't enable shared vnode locks on FIFO vnodes in ZFS and UFS since
FIFO's require exclusive vnode locks for their open() and close()
routines. (My recent MPSAFE patches for UDF and cd9660 already included
this change.)
- Enable extended shared operations on UFS, cd9660, and UDF.
Notes:
svn path=/stable/7/; revision=202750
|
| |
|
|
|
|
|
| |
Fix a memory leak.
Notes:
svn path=/stable/7/; revision=199682
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to
a device pager (OBJT_DEVICE) object in that it uses fictitious pages to
provide aliases to other memory addresses. The primary difference is that
it uses an sglist(9) to determine the physical addresses for a given offset
into the object instead of invoking the d_mmap() method in a device driver.
Notes:
svn path=/stable/7/; revision=197197
|
| |
|
|
|
|
|
|
|
| |
insmntque_stddtr() clears vp->v_data and resets vp->v_op to
dead_vnodeops before calling vgone(). Revert r189706 and corresponding
part of the r186560.
Notes:
svn path=/stable/7/; revision=197063
|
| |
|
|
|
|
|
|
|
| |
Remove spurious pfs_unlock().
Approved by: re (rwatson)
Notes:
svn path=/stable/7/; revision=196860
|
| |
|
|
|
|
|
|
|
| |
- Don't grab the filedesc lock just to read fd_cmask.
- Drop vnode locks earlier when mounting the root filesystem and before
sanitizing stdin/out/err file descriptors during execve().
Notes:
svn path=/stable/7/; revision=196197
|
| |
|
|
|
|
|
|
|
|
|
| |
s/a_fdidx/a_fp/ for VOP_OPEN comments that inline struct vop_open_args
definition.
MFC r193924:
Fix r193923 by noting that type of a_fp is struct file *, not int.
Notes:
svn path=/stable/7/; revision=194817
|
| |
|
|
|
|
|
| |
Remove unused VOP_IOCTL and VOP_KQFILTER implementations for fifofs.
Notes:
svn path=/stable/7/; revision=194816
|
| |
|
|
|
|
|
|
|
|
|
| |
Lock the vnode in cd9660, devfs and pseudofs implementation of VOP_IOCTL
to prevent reclaim, since the vnode is passed unlocked to the VOP.
MFC r193930:
For cd9660_ioctl, check for recycled vnode after locking it.
Notes:
svn path=/stable/7/; revision=194815
|
| |
|
|
|
|
|
| |
the recentish changes to vn_vget_ino().
Notes:
svn path=/stable/7/; revision=194502
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=194367
|
| |
|
|
|
|
|
| |
Unlock the pseudofs vnode before calling fill method for pfs_readlink().
Notes:
svn path=/stable/7/; revision=194205
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
below) as well as the following:
- the recurring deadlock was fixed by deferring vinactive to a dedicated thread
- zfs boot for all pool types now works
Submitted by: dfr
- kmem now goes up to 512GB so arc is now limited by physmem
- the arc now experiences backpressure from the vm (which can be too
much - but this allows ZFS to work without any tunables on amd64)
- frequently recurring LOR in the ARC fixed
- zfs send coredump fix
- fixes for various PRs
Supported by: Barrett Lyon, BitGravity
Revision 185029 - (view) (annotate) - [select for diffs]
Modified Mon Nov 17 20:49:29 2008 UTC (6 months ago) by pjd
File length: 38244 byte(s)
Diff to previous 177698
Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.
This bring huge amount of changes, I'll enumerate only user-visible changes:
- Delegated Administration
Allows regular users to perform ZFS operations, like file system
creation, snapshot creation, etc.
- L2ARC
Level 2 cache for ZFS - allows to use additional disks for cache.
Huge performance improvements mostly for random read of mostly
static content.
- slog
Allow to use additional disks for ZFS Intent Log to speed up
operations like fsync(2).
- vfs.zfs.super_owner
Allows regular users to perform privileged operations on files stored
on ZFS file systems owned by him. Very careful with this one.
- chflags(2)
Not all the flags are supported. This still needs work.
- ZFSBoot
Support to boot off of ZFS pool. Not finished, AFAIK.
Submitted by: dfr
- Snapshot properties
- New failure modes
Before if write requested failed, system paniced. Now one
can select from one of three failure modes:
Before if write requested failed, system paniced. Now one
can select from one of three failure modes:
- panic - panic on write error
- wait - wait for disk to reappear
- continue - serve read requests if possible, block write requests
- Refquota, refreservation properties
Just quota and reservation properties, but don't count space consumed
by children file systems, clones and snapshots.
- Sparse volumes
ZVOLs that don't reserve space in the pool.
- External attributes
Compatible with extattr(2).
- NFSv4-ACLs
Not sure about the status, might not be complete yet.
Submitted by: trasz
- Creation-time properties
- Regression tests for zpool(8) command.
Obtained from: OpenSolaris
Notes:
svn path=/stable/7/; revision=192498
|
| |
|
|
|
|
|
| |
Initialize f_vnode before calling d_fdopen() cdevsw method.
Notes:
svn path=/stable/7/; revision=192301
|
| |
|
|
|
|
|
|
|
| |
Return controlled EINVAL when the fdescfs lookup routine is given string
representing too large integer, instead of overflowing and possibly
returning a random but valid vnode.
Notes:
svn path=/stable/7/; revision=192140
|
| |
|
|
|
|
|
|
| |
MFC r190806: fix incorrect KASSERT, add more
MFC r188677: remove incorrect locking
Notes:
svn path=/stable/7/; revision=192079
|
| |
|
|
|
|
|
|
|
| |
markus and emax are notified
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190074
|
| |
|
|
|
|
|
| |
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190060
|
| |
|
|
|
|
|
| |
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190059
|
| |
|
|
|
|
|
| |
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190057
|
| |
|
|
|
|
|
|
|
| |
MAXBSIZE
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190052
|
| |
|
|
|
|
|
| |
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190050
|
| |
|
|
|
|
|
| |
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190049
|
| |
|
|
|
|
|
|
|
| |
fentry
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190048
|
| |
|
|
|
|
|
|
|
| |
extra diagnostics
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190047
|
| |
|
|
|
|
|
| |
Approved by: jhb (mentor)
Notes:
svn path=/stable/7/; revision=190045
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=189991
|
| |
|
|
|
|
|
| |
hold a reference on the cdev the fs is mounted on.
Notes:
svn path=/stable/7/; revision=189976
|
| |
|
|
|
|
|
| |
until after g_vfs_open() to match other filesystems.
Notes:
svn path=/stable/7/; revision=189975
|
| |
|
|
|
|
|
| |
pathname lookups.
Notes:
svn path=/stable/7/; revision=189973
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=189972
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=189971
|
| |
|
|
|
|
|
| |
Enable advisory file locking for devfs vnodes.
Notes:
svn path=/stable/7/; revision=189958
|
| |
|
|
|
|
|
|
|
|
| |
Extract the no_poll() and vop_nopoll() code into the common routine
poll_no_poll().
Return a poll_no_poll() result from devfs_poll_f() when
filedescriptor does not reference the live cdev, instead of ENXIO.
Notes:
svn path=/stable/7/; revision=189766
|
| |
|
|
|
|
|
| |
lookups. Also, disable operations on character device nodes.
Notes:
svn path=/stable/7/; revision=189709
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
following nodes as MPSAFE:
- All standalone INT/LONG sysctls.
- kern.proc.*
- All name-cache related sysctls.
- vm.loadavg
- vm.vmtotal
- vm.stats.(sys|vm).*
- sysctl.name2oid
- kern.ident, kern.osrelease, kern.version, etc.
- kern.arandom
- security.jail.jailed
- kern.devname
Other changes:
- Remove GIANT_REQUIRED from vmtotal().
- Add conditional Giant locking around the vrele() in
sysctl_kern_proc_pathname().
Notes:
svn path=/stable/7/; revision=189644
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Turn a "panic: non-decreasing id" into an error printf. This seems
to be caused by a metadata corruption that occurs quite often after
unplugging a pendrive during write activity.
Reviewed by: scottl
Approved by: rwatson (mentor)
Sponsored by: FreeBSD Foundation
Notes:
svn path=/stable/7/; revision=189228
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Don't panic with "vinvalbuf: dirty bufs" when the mounted device that was
being written to goes away.
Reviewed by: kib, scottl
Approved by: rwatson (mentor)
Sponsored by: FreeBSD Foundation
Notes:
svn path=/stable/7/; revision=189227
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to phk@, VOP_STRATEGY should never, _ever_, return
anything other than 0. Make it so. This fixes
"panic: VOP_STRATEGY failed bp=0xc320dd90 vp=0xc3b9f648",
encountered when writing to an orphaned filesystem. Reason
for the panic was the following assert:
KASSERT(i == 0, ("VOP_STRATEGY failed bp=%p vp=%p", bp, bp->b_vp));
at vfs_bio:bufstrategy().
Reviewed by: scottl, phk
Approved by: rwatson (mentor)
Sponsored by: FreeBSD Foundation
Notes:
svn path=/stable/7/; revision=189226
|
| |
|
|
|
|
|
|
|
|
|
| |
Lookup up the directory entry for the tmpfs node that are deleted by
both node pointer and name component. This does the right thing for
hardlinks to the same node in the same directory.
PR: kern/131356
Notes:
svn path=/stable/7/; revision=188911
|
| |
|
|
|
|
|
|
|
| |
closing some races between procfs' <pid>/file and execve(2) and using a
shared vnode lock for the VOP_GETATTR() in the kern.proc.vmmap sysctl
handler.
Notes:
svn path=/stable/7/; revision=188738
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The kernel may do unbalanced calls to fifo_close() for fifo vnode,
without corresponding number of fifo_open(). This causes assertion
failure in fifo_close() due to vp->v_fifoinfo being NULL for kernel
with INVARIANTS, or NULL pointer dereference otherwise. In fact, we may
ignore excess calls to fifo_close() without bad consequences.
Turn KASSERT() into the return, and print warning for now.
Notes:
svn path=/stable/7/; revision=188389
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When the insmntque() in the pfs_vncache_alloc() fails, vop_reclaim calls
pfs_vncache_free() that removes pvd from the list, while it is not yet
put on the list.
Prevent the invalid removal from the list by clearing pvd_next and
pvd_prev for the newly allocated pvd, and only move pfs_vncache list
head when the pvd was at the head.
Notes:
svn path=/stable/7/; revision=187890
|
| |
|
|
|
|
|
|
|
|
| |
vm_map_lock_read() does not increment map->timestamp, so we should
compare map->timestamp with saved timestamp after map read lock is
reacquired, not with saved timestamp + 1. The only consequence of the +1
was unconditional lookup of the next map entry, though.
Notes:
svn path=/stable/7/; revision=187889
|
| |
|
|
|
|
|
| |
Drop the pseudofs vnode lock around call to pfs_read handler.
Notes:
svn path=/stable/7/; revision=187888
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After the pfs_vncache_mutex is dropped, another thread may attempt to
do pfs_vncache_alloc() for the same pfs_node and pid. In this case, we
could end up with two vnodes for the pair. Recheck the cache under the
locked pfs_vncache_mutex after all sleeping operations are done.
Do not call free() on the struct pfs_vdata after insmntque() failure,
because vp->v_data points to the structure, and pseudofs_reclaim()
frees it by the call to pfs_vncache_free().
MFC r186981 (by marcus):
vput the vnode.
Notes:
svn path=/stable/7/; revision=187887
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initialize birthtime fields in vn_stat() to prevent stat(2) from
returning uninitialized birthtime. Most file systems don't initialize
birthtime properly in their VOP_GETTATTR().
MFC r183212:
Initialize va_flags and va_filerev properly in VOP_GETATTR(). Don't
initialize va_vaflags and va_spare because they are not part of the
VOP_GETATTR() API. Also don't initialize birthtime to ctime or zero.
MFC rr183213:
Initialize va_rdev to NODEV and va_fsid to VNOVAL before the
VOP_GETATTR() call in vn_stat(). Thus if a file system doesn't
initialize those fields in VOP_GETATTR() they will have a sane default
value.
MFC r183214:
Initialize va_rdev to NODEV instead of 0 or VNOVAL in VOP_GETATTR().
NODEV is more appropriate when va_rdev doesn't have a meaningful value.
MFC r183215:
fdescfs, devfs, mqueuefs, nfs, portalfs, pseudofs, tmpfs and xfs
initialize the vattr structure in VOP_GETATTR() with VATTR_NULL(),
vattr_null() or by zeroing it. Remove these to allow preinitialization
of fields work in vn_stat(). This is needed to get birthtime initialized
correctly.
Notes:
svn path=/stable/7/; revision=187534
|
| |
|
|
|
|
|
|
|
|
| |
Reference the vmspace of the process being inspected by procfs, linprocfs
and sysctl kern_proc_vmmap handlers.
Approved by: re (kensmith)
Notes:
svn path=/stable/7/; revision=186325
|