Age | Commit message (Collapse) | Author |
|
instead of unp_connect2(). This adds the missing splsoftnet().
Require that socantsendmore() and socantrcvmore() in uipc_socket2.c
should be called with splsoftnet().
Found by David Hill; OK mikeb@
|
|
parent inode number for ".." lookups. This only works until the kernel
starts to reuse vnodes and the parent's vnode is reclaimed and the ino
to path mapping is removed from the userland process by libfuse. Fix
this by using reference counting in libfuse, so that parent mapping are
retained as long as a child uses them. Also, don't free the root node.
This commit resolves following issue:
$ doas fuse-zip ~/Downloads/foo.zip /mnt
$ ls /mnt
openbsd-www
$ grep -IR foo /usr/src > /dev/null # force vfs to reclaim vnodes
$ ls /mnt
ls: /mnt: No such file or directory
$
ok tedu
|
|
vattr in userspace is suboptimal as some related helpers are not
available, e.g. VATTR_NULL() and IFTOVT(). The conversion is now done in
the kernel where it belongs. As a side effect the <sys/vnode.h> include
can be removed from libfuse.
tweaks and ok guenther
|
|
updated struct vattr afterwards, so the call can be removed. Remove both
calls and the function itself, inlining the last remaining call.
ok millert
|
|
filesystem the tree can change behind our back, resulting in stale cache
entries. "The only winning move is not to play."
ok tedu beck mpi
|
|
under the assumption, that fuse_vget() has reasonable semantics, while
this is not the case. fusefs_vget() only functions correctly, if the
file in questions has recently been accessed and is still in the vnode
cache of the userspace daemon associated with the mount point.
As a matter of fact the fuse api doesn't feature a reasonable way to map
inode numbers to a handle at all (see struct fuse_operations).
ok guenther
|
|
cast from FUSE_ROOTINO, as it is already included in the #define.
ok kettenis
|
|
vtype in struct fusefs_node and v_type in struct vnode. Given the fact,
that fusefs_node structs are never allocated without an associated vnode
and those two fields are always in sync, one of those locations is
superfluous.
While there remove the unused nlookup field.
ok mpi
|
|
trivial change to use rrw locks instead. All it needs is LK_* defines
for the RW_* flags.
tested by naddy and sthen on package building infrastructure
input and ok jmc mpi tedu
|
|
ok guenther
|
|
left using it is fuse. It has been removed from all other filesystems.
ok millert deraadt
|
|
msdosfs and nfsv2 don't set f_namemax. ntfs and ext2fs don't set
f_namemeax and f_favail. fusefs doesn't set f_mntfromspec, f_favail and
f_iosize. Also, make all filesystems use copy_statfs_info(), so that all
statfs information is filled in correctly for the (sb != &mp->mnt-stat)
case.
ok stefan
|
|
could end up in an inconsistent state. The fstype dependent
mp->mnt_data was NULL, but the general mp was still listed as a
valid mount point. Next access to the file system would crash with
a NULL pointer dereference.
If closing the device fails, the mount point must go away anyway.
There is nothing we can do about it. Remove the workaround for the
EIO error in the general unmount code, but do not generate any error
in the file system specific unmount functions.
OK natano@ beck@
|
|
torture tested on amd64, i386 and macppc
ok beck mpi stefan
"the change looks right" deraadt
|
|
OK krw@ natano@ as part of a larger diff
|
|
The FUSE_ROOTINO define is used everywhere else in fuse, so the mismatch
caused a file handle for the filesystem root to be falsely rejected with
ESTALE.
ok stefan@
|
|
ok stefan@
|
|
uiomove had unsigned types already.
Diff from Martin Natano.
|
|
|
|
|
|
|
|
from Martin Natano
|
|
and a count instead of calling the callback on each one, while also renders
the 'dispose' argument superfluous.
Move unp_*() prototypes from <sys/un.h> to <sys/unpcb.h>
ok claudio@ mpi@
|
|
Since we use the poll backend for select(2), care must be taken not
to set the fd's bit in writefds in this case. A kernel-only flag,
POLLNOHUP, is used by selscan() to tell the poll backend not to
return POLLHUP on EOF. This is currently only used by fifo_poll().
The fifofs regress now passes. OK guenther@
|
|
things like POLLOUT on a read-only fd more sensibly. Previously,
any poll events could be used regardless of the actual file flags
of the descriptor. The new fifo_poll() is effectively a pared down
soo_poll() with slightly different semantics to batter match FIFOs.
OK and feedback from guenther@
|
|
atime and mtime are UTIME_OMIT (at least for ufs, tmpfs, and ext2fs), and
to correctly handle a timestamp of -1.
ok millert@
|
|
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
from Martin Natano
|
|
in the normal, blocking case. No longer passes regress but that
will be fixed later. OK jca@
|
|
|
|
|
|
- rename uiomove() to uiomovei() and update all its users.
- introduce uiomove(), which is similar to uiomovei() but with a size_t.
- rewrite uiomovei() as an uiomove() wrapper.
ok kettenis@
|
|
|
|
|
|
objective: vnode.h doesn't include uvm_extern.h anymore.
followup changes: include uvm_extern.h or lock.h where necessary.
ok and help from deraadt
|
|
|
|
to include that than rdnvar.h. ok deraadt dlg
|
|
|
|
by mutating so_state before calling soo_poll(), call soo_poll() normally
but avoid setting SS_CANTRCVMORE in the reader's so_state on first open.
This fixes EOF detection in select/poll on the reader side when the write
side is closed. Also set SS_ISDISCONNECTED when the writer count reaches
zero so POLLHUP is set in revents. Unlike Unix domain sockets, we need
to clear the EOF indicator after it has been read so that subsequent
reads will block waiting for a new writer. This now passes regress.
|
|
|
|
ok mpi@ kspillner@
|
|
|
|
ok tedu@
|
|
after discussions with beck deraadt kettenis.
|
|
don't need to be married.
ok guenther miod beck jsing kettenis
|
|
PS_{ZOMBIE,EMBRYO} on the process instead of peeking into the process's
thread data. This eliminates the need for the thread-level SDEAD state.
Change kvm_getprocs() (both the sysctl() and kvm backends) to report the
"most active" scheduler state for the process's threads.
tweaks kettenis@
feedback and ok matthew@
|
|
vflush(9) succeed.
Problem reported by Helg Bredow.
OK sthen@
|
|
working read() and write().
ok tedu@
|
|
when the fuse communication channel is broken and ENOSYS when the
libfuse callback does not exist.
Reported by Helg Bredow, thanks!
ok tedu@
|
|
pulled by <uvm/uvm_extern.h> and turn uvm_total() into a private
function.
The preferred way to get memory stats is through the VM_UVMEXP
sysctl(3) since VM_METER is just a wrapper on top of it. In the
kernel, use `uvmexp' directly instead of uvm_total().
This change does not remove <sys/vmmeter.h> from <uvm/uvm_extern.h>
to give some more time to port maintainers to fix their ports.
ok guenther@ as part of a larger diff.
|