Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 51d8761d | 2024-10-31 13:55:21 | Stop abusing ufs inodes and with it the ufs_ihash. Instead extend fusefs_node with the few required fields. Tested by kirill@ with input from miod@ OK beck@ | ||
| 5a0ec814 | 2024-10-18 05:52:32 | Put the bowels of the various VOP_PRINT routines under defined(DEBUG) || defined(DIAGNOSTIC) || defined(VFSLCKDEBUG) as they won't be used otherwise. Shaves a few bytes off installation kernels. ok kn@ semarie@ | ||
| 00475b9b | 2024-09-12 09:10:46 | Do a basic sanity check that dirents returned via fuse are kind of sane. Ensure that file names passed back by readdir do not include a '/' character. The '/' char is the path separator and is not allowed in any filename. On top of this also check that d_reclen and d_namlen are kind of sane and zero out the padding bytes after d_name. OK beck@ | ||
| ac42138b | 2024-07-12 17:20:18 | Switch `so_snd' of udp(4) sockets to the new locking scheme. udp_send() and following udp{,6}_output() do not append packets to `so_snd' socket buffer. This mean the sosend() and sosplice() sending paths are dummy pru_send() and there is no problems to simultaneously run them on the same socket. Push shared solock() deep down to sesend() and take it only around pru_send(), but keep somove() running unedr exclusive solock(). Since sosend() doesn't modify `so_snd' the unlocked `so_snd' space checks within somove() are safe. Corresponding `sb_state' and `sb_flags' modifications are protected by `sb_mtx' mutex(9). Tested and OK bluhm. | ||
| 161e4927 | 2024-06-28 21:30:24 | Restore original EPIPE and ENOTCONN errors priority in the uipc_send() path changed in rev 1.206. At least acme-client(1) is not happy with this change. Reported by claudio. Tests and ok by bluhm. | ||
| f4c09545 | 2024-05-20 09:11:21 | Drop MNT_LOCAL flag in corresponding `vfsconflist' fuse(4) entry instead of cleaning it in fusefs_mount(). ok claudio | ||
| aa47c49a | 2024-05-13 11:17:40 | vfs: VOP_REMOVE: move vnode unlocking and ref dropping to FS-indep part while here, ensure all vop_remove field are set, and always call the function. the change is very conservative: it only adds vnode ref drop/unlock where it was absent because it should be unreachable (and if it wasn't, it should fix things). ok miod@ | ||
| 4670dd04 | 2024-05-07 14:27:11 | Clear MNT_LOCAL flag on FUSE file system. It can be local or remote, but kernel can't tell the difference. From Kirill A. Korinsky ok claudio mpi | ||
| bb0cd11a | 2024-05-03 17:43:09 | Push solock() down to sosend() and remove it from soreceive() paths fro unix(4) sockets. Push solock() deep down to sosend() and remove it from soreceive() paths for unix(4) sockets. The transmission of unix(4) sockets already half-unlocked because connected peer is not locked by solock() during sbappend*() call. Use `sb_mtx' mutex(9) and `sb_lock' rwlock(9) to protect both `so_snd' and `so_rcv'. Since the `so_snd' is protected by `sb_mtx' mutex(9) the re-locking is not required in uipc_rcvd(). Do direct `so_rcv' dispose and cleanup in sofree(). This sockets is almost dead and unlinked from everywhere include spliced peer, so concurrent sotask() thread will just exit. This required to keep locks order between `i_lock' and `sb_lock'. Also this removes re-locking from sofree() for all sockets. SB_OWNLOCK became redundant with SB_MTXLOCK, so remove it. SB_MTXLOCK was kept because checks against SB_MTXLOCK within sb*() routines are mor consistent. Feedback and ok bluhm | ||
| 02a82712 | 2024-03-26 09:46:47 | Use `sb_mtx' to protect `so_rcv' receive buffer of unix(4) sockets. This makes re-locking unnecessary in the uipc_*send() paths, because it's enough to lock one socket to prevent peer from concurrent disconnection. As the little bonus, one unix(4) socket can perform simultaneous transmission and reception with one exception for uipc_rcvd(), which still requires the re-lock for connection oriented sockets. The socket lock is not held while filt_soread() and filt_soexcept() called from uipc_*send() through sorwakeup(). However, the unlocked access to the `so_options', `so_state' and `so_error' is fine. The receiving socket can't be or became listening socket. It also can't be disconnected concurrently. This makes immutable SO_ACCEPTCONN, SS_ISDISCONNECTED and SS_ISCONNECTED bits which are clean and set respectively. `so_error' is set on the peer sockets only by unp_detach(), which also can't be called concurrently on sending socket. This is also true for filt_fiforead() and filt_fifoexcept(). For other callers like kevent(2) or doaccept() the socket lock is still held. ok bluhm | ||
| 6cb92a3c | 2024-03-25 17:57:07 | Move the "no (hard) linking directories" and "no cross-mount links" checks from all the filesystems that support hardlinks at all into the VFS layer. Simplify, EPERM description in link(2). ok miod@ mpi@ | ||
| 104c0a83 | 2024-02-03 22:50:08 | Rework socket buffers locking for shared netlock. Shared netlock is not sufficient to call so{r,w}wakeup(). The following sowakeup() modifies `sb_flags' and knote(9) stuff. Unfortunately, we can't call so{r,w}wakeup() with `inp_mtx' mutex(9) because sowakeup() also calls pgsigio() which grabs kernel lock. However, `so*_filtops' callbacks only perform read-only access to the socket stuff, so it is enough to hold shared netlock only, but the klist stuff needs to be protected. This diff introduces `sb_mtx' mutex(9) to protect sockbuf. This time `sb_mtx' used to protect only `sb_flags' and `sb_klist'. Now we have soassertlocked_readonly() and soassertlocked(). The first one is happy if only shared netlock is held, meanwhile the second wants `so_lock' or pru_lock() be held together with shared netlock. To keep soassertlocked*() assertions soft, we need to know mutex(9) state, so new mtx_owned() macro was introduces. Also, the new optional (*pru_locked)() handler brings the state of pru_lock(). Tests and ok from bluhm. | ||
| e10a268e | 2023-12-16 22:17:08 | Make `fuse_rd_filtops' mpsafe. Introduce `fd_lock' rwlock(9) and use it for `fd_fbufs_in' fuse buffers queue and `fd_rklist' knotes list protection. Tested by Rafael Sadowski. Discussed with and ok from bluhm | ||
| cc53a24c | 2023-09-08 20:00:27 | Remove the remnants of the leftover selinfo from vnode(9) layer. Just mechanical 'selinfo' to 'klist' replacement in 'vnode' structure because knote(9) API is already used. <sys/selinfo.h> headers added where is was required. ok bluhm | ||
| 5b133f3f | 2023-03-08 04:43:04 | Delete obsolete /* ARGSUSED */ lint comments. ok miod@ millert@ | ||
| 80b1b8fb | 2023-01-27 18:46:34 | Replace selinfo structure by klist in sockbuf. No reason to keep it, selinfo is just wrapper to klist. netstat(1) and libkvm use socket structure, but don't touch so_{snd,rcv}.sb_sel. ok visa@ | ||
| 4b9bfff3 | 2023-01-22 12:05:44 | Move SS_CANTRCVMORE and SS_RCVATMARK bits from `so_state' to `sb_state' of receive buffer. As it was done for SS_CANTSENDMORE bit, the definition kept as is, but now these bits belongs to the `sb_state' of receive buffer. `sb_state' ored with `so_state' when socket data exporting to the userland. ok bluhm@ | ||
| 9e437519 | 2023-01-21 11:23:23 | Introduce per-sockbuf `sb_state' to use it with SS_CANTSENDMORE. This time, socket's buffer lock requires solock() to be held. As a part of socket buffers standalone locking work, move socket state bits which represent its buffers state to per buffer state. Opposing the previous reverted diff, the SS_CANTSENDMORE definition left as is, but it used only with `sb_state'. `sb_state' ored with original `so_state' when socket's data exported to the userland, so the ABI kept as it was. Inputs from deraadt@. ok bluhm@ | ||
| 33da1efb | 2022-12-12 08:30:22 | Revert sb_state changes to unbreak tree. | ||
| cba97bf9 | 2022-12-11 21:19:08 | This time, socket's buffer lock requires solock() to be held. As a part of socket buffers standalone locking work, move socket state bits which represent its buffers state to per buffer state. Introduce `sb_state' and turn SS_CANTSENDMORE to SBS_CANTSENDMORE. This bit will be processed on `so_snd' buffer only. Move SS_CANTRCVMORE and SS_RCVATMARK bits with separate diff to make review easier and exclude possible so_rcv/so_snd mistypes. Also, don't adjust the remaining SS_* bits right now. ok millert@ | ||
| 8f47c760 | 2022-08-29 06:08:03 | static const, not const static c99 6.11.5: "The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature." ok miod@ tb@ | ||
| 1525749f | 2022-07-02 08:50:41 | Remove unused device poll functions. Also remove unneeded includes of <sys/poll.h> and <sys/select.h>. Some addenda from jsg@. OK miod@ mpi@ | ||
| cf85347f | 2022-07-01 09:56:17 | Make fine grained unix(4) domain sockets locking. Use the per-socket `so_lock' rwlock(9) instead of global `unp_lock' which locks the whole layer. The PCB of unix(4) sockets are linked to each other and we need to lock them both. This introduces the lock ordering problem, because when the thread (1) keeps lock on `so1' and trying to lock `so2', the thread (2) could hold lock on `so2' and trying to lock `so1'. To solve this we always lock sockets in the strict order. For the sockets which are already accessible from userland, we always lock socket with the smallest memory address first. Sometimes we need to unlock socket before lock it's peer and lock it again. We use reference counters for prevent the connected peer destruction during to relock. We also handle the case where the peer socket was replaced by another socket. For the newly connected sockets, which are not yet exported to the userland by accept(2), we always lock the listening socket `head' first. This allows us to avoid unwanted relock within accept(2) syscall. ok claudio@ | ||
| 5c9fbd3c | 2022-06-26 05:20:42 | Remove unused VOP_POLL(). OK mpi@ | ||
| 84245c07 | 2022-06-06 14:45:41 | Simplify solock() and sounlock(). There is no reason to return a value for the lock operation and to pass a value to the unlock operation. sofree() still needs an extra flag to know if sounlock() should be called or not. But sofree() is called less often and mostly without keeping the lock. OK mpi@ mvs@ | ||
| 6bb7f701 | 2022-02-16 13:19:33 | Add missing FILTEROP_MPSAFE flag to fifoexcept_filtops. OK mpi@ | ||
| ab73976a | 2022-02-16 13:18:08 | Reduce code duplication in FIFO event filters. OK mpi@ | ||
| a3a2b40e | 2022-02-13 12:58:46 | Rename knote_modify() to knote_assign() This avoids verb overlap with f_modify. | ||
| 3a22be5a | 2021-12-20 16:22:24 | Let poll(2) register EVFILT_EXCEPT filter with dead vnodes This enables the system deliver POLLHUP when pollfd.events == 0. | ||
| 7fedc433 | 2021-12-14 15:53:42 | Remember to clear __EV_HUP when the other end of the FIFO has re-opened. | ||
| 87c93f01 | 2021-12-13 14:56:55 | Revise EVFILT_EXCEPT filters Restrict the circumstances where EVFILT_EXCEPT filters trigger: * when out-of-band data is present and NOTE_OOB is requested. * when the channel is fully closed and consumer is poll(2). This should clarify the logic and suppress events that kqueue-based poll(2) does not except. OK mpi@ | ||
| 468dccc2 | 2021-12-13 14:54:22 | Prevent kevent(2) use of EVFILT_EXCEPT with FIFOs and pipes Currently, the only intended direct usage of the EVFILT_EXCEPT filter is with NOTE_OOB to detect out-of-band data in ptys and sockets. NOTE_OOB does not apply to FIFOs or pipes. Prevent the user from registering the filter with these file types. The filter code is for the kernel's internal use. OK mpi@ | ||
| f1993be3 | 2021-12-12 09:14:58 | Add vnode parameter to VOP_STRATEGY() Pass the device vnode as a parameter to VOP_STRATEGY() to allow calling the correct vop_strategy callback. Now the vnode is also available in the callback. OK mpi@ | ||
| 6ecc0d7f | 2021-12-11 09:28:26 | Clarify usage of __EV_POLL and __EV_SELECT Make __EV_POLL specific to kqueue-based poll(2), to remove overlap with __EV_SELECT that only select(2) uses. OK millert@ mpi@ | ||
| 8013d39c | 2021-12-08 13:03:52 | Fix select(2) exceptfds handling of FIFOs and pipes Prevent select(2) from indicating an exceptional condition when the other end of a FIFO or pipe is closed. Originally, select(2) returned an exceptfds event only with a pty or socket that has out-of-band data pending. millert@ says that OpenBSD diverged from this by accident when poll(2) and select(2) were changed to use the same backend code in year 2003. OK millert@ | ||
| fdd2406a | 2021-10-24 11:23:22 | Implement poll(2), select(2), ppoll(2) & pselect(2) on top of kqueue. The given set of fds are converted to equivalent kevents using EV_SET(2) and passed to the scanning internals of kevent(2): kqueue_scan(). ktrace(1) will now output the converted kevents on top of the usuals set bits to be able to find possible error in the convertion. This switch implies that poll(2) and select(2) will now query underlying kqfilters instead of the *_poll() routines. An increase in latency is visible, especially with UDP sockets and NET_LOCK()-contended subsystems and will be addressed in next steps. Based on similar work done on MacOS and DragonFlyBSD with inputs from visa@, millert@, anton@, cheloha@, thanks! Tested by many, thanks! ok claudio@, bluhm@ | ||
| 8e156a1d | 2021-10-24 07:02:47 | Set klist lock for sockets to make socket event filters MP-safe The filterops instances already provide f_modify and f_process callbacks with proper internal locking. Locking of socket klists has been the missing detail for MP-safety. OK mpi@ | ||
| 0650ab1a | 2021-10-22 15:11:32 | Make EVFILT_EXCEPT handling separate from the read filter. This is a change of behavior and events wont be generated if there is something to read on the fd. Only EV_EOF or NOTE_OOB will now be reported. While here a new filter for FIFOs supporting EV_EOF and __EV_HUP. ok visa@ | ||
| f42cad0a | 2021-10-19 06:09:39 | vnode: deadfs: do not call v_op->vop_lock directly, use VOP_LOCK() wrapper ok mpi@ visa@ (as part of larger diff) | ||
| 413a7ab5 | 2021-10-15 06:30:06 | vnode: remove vop_generic_{,is,un}lock stub functions These functions are only stubs (returning 0). Replace them with nullop function (same behaviour). There is no intented behaviour changes. While here, reorder some vop_islocked member in structs to be next others vop_{,un}lock members. ok visa@ | ||
| 81b1345f | 2021-10-02 17:29:28 | fuse: avoid namei_pool leaks in several functions when calling namei(), cn_pnbuf is kept allocated when fs implementation is setting SAVENAME flag. In such cases, it is expected the fs implementation to also release memory when work is done. fuse(4) didn't put back the memory to the pool. correct it. ok mpi@ | ||
| 9aafff14 | 2021-10-02 08:51:41 | vfs: merge *_badop to vop_generic_badop It replaces spec_badop, fifo_badop, dead_badop and mfs_badop, which are only calls to panic(9), to one unique function vop_generic_badop(). No intented behaviour changes (outside the panic message which isn't the same). ok mpi@ | ||
| f894fcaa | 2021-07-13 07:37:50 | Add f_modify and f_process callbacks to FIFO filterops. OK millert@ mpi@ | ||
| 9c14f6a5 | 2021-05-01 16:18:28 | Update the remaining SYSCTL_INT_READONLY cases OK mvs@ | ||
| 9d6122f6 | 2021-04-28 09:53:53 | Introduce a global vnode_mtx and use it to make vn_lock() safe to be called without the KERNEL_LOCK. This moves VXLOCK and VXWANT to a mutex protected v_lflag field and also v_lockcount is protected by this mutex. The vn_lock() dance is overly complex and all of this should probably replaced by a proper lock on the vnode but such a diff is a lot more complex. This is an intermediate step so that at least some calls can be modified to grab the KERNEL_LOCK later or not at all. OK mpi@ | ||
| 8761c2c6 | 2021-03-24 16:11:32 | make some `struct vops' members explicitly NULL instead of implicitly NULL ok mpi@ | ||
| b66b9ef8 | 2021-03-11 13:31:35 | spelling | ||
| e04a79f8 | 2021-01-17 05:23:34 | Replace SB_KNOTE and sb_flagsintr with direct checking of klist. OK mpi@ as part of a larger diff | ||
| 9b0cf67b | 2020-12-25 12:59:51 | Refactor klist insertion and removal Rename klist_{insert,remove}() to klist_{insert,remove}_locked(). These functions assume that the caller has locked the klist. The current state of locking remains intact because the kernel lock is still used with all klists. Add new functions klist_insert() and klist_remove() that lock the klist internally. This allows some code simplification. OK mpi@ | ||
| 6e044e75 | 2020-11-17 03:23:10 | Convert fusefs_sysctl to sysctl_bounded_args OK millert@ | ||
| cd731760 | 2020-06-15 15:42:11 | Implement a simple kqfilter for deadfs matching its poll handler. ok visa@, millert@ | ||
| 2b88cdaf | 2020-06-15 15:29:40 | Set __EV_HUP when the conditions matching poll(2)'s POLLUP are found. This is only done in poll-compatibility mode, when __EV_POLL is set. ok visa@, millert@ | ||
| 1c57bd6b | 2020-06-11 09:18:43 | Rename poll-compatibility flag to better reflect what it is. While here prefix kernel-only EV flags with two underbars. Suggested by kettenis@, ok visa@ | ||
| 6e29a944 | 2020-06-08 08:04:09 | Use a new EV_OLDAPI flag to match the behavior of poll(2) and select(2). Adapt FS kqfilters to always return true when the flag is set and bypass the polling mechanism of the NFS thread. While here implement a write filter for NFS. ok visa@ | ||
| a9ad0377 | 2020-05-13 08:13:42 | Use seltrue_kqfilter() instead of hand-rolling it in multiple drivers. ok visa@ | ||
| f7744361 | 2020-04-08 08:07:51 | Make fifo_kqfilter() honor FREAD|FWRITE just like fifo_poll() does. Prevent generating events that do not correspond to how the fifo has been opened. ok visa@, millert@ | ||
| c35e1d21 | 2020-04-08 08:01:52 | Pass correct socket to the write kqueue filter. Make EVFILT_WRITE notifications on fifo work. ok visa@, millert@ | ||
| 9c969c9a | 2020-04-07 13:27:50 | Abstract the head of knote lists. This allows extending the lists, for example, with locking assertions. OK mpi@, anton@ | ||
| c03a054f | 2020-04-03 08:08:51 | Return POLLERR instead of EINVAL in fusepoll(). ok kettenis@ | ||
| b8213689 | 2020-02-20 16:56:51 | Replace field f_isfd with field f_flags in struct filterops to allow adding more filter properties without cluttering the struct. OK mpi@, anton@ | ||
| 2d6b9e38 | 2020-01-20 23:21:55 | struct vops is not modified during runtime so use const which moves each into read-only data segment. OK deraadt@ tedu@ | ||
| 9b55129e | 2020-01-08 15:03:10 | Convert infinite sleeps to tsleep_nsec(9). ok bluhm@ | ||
| 94321eb4 | 2019-12-31 13:48:31 | Use C99 designated initializers with struct filterops. In addition, make the structs const so that the data are put in .rodata. OK mpi@, deraadt@, anton@, bluhm@ | ||
| 41f642fc | 2019-12-26 13:28:49 | Convert struct vfsops initializer to C99 style. OK visa@ | ||
| b63185a7 | 2019-12-12 16:33:02 | Reintroduce socket locking inside socket event filters. Tested by anton@, sashan@ OK mpi@, anton@, sashan@ | ||
| 83824c38 | 2019-12-05 10:41:08 | Convert infinite sleeps to tsleep_nsec(9). ok jca@ | ||
| ed1efb57 | 2019-10-19 06:56:18 | Unlock the vnode in vop_inactive of deadfs. The unlock operation is a no-op at the moment, but future work will introduce an actual lock that has to be released. OK mpi@ anton@ | ||
| 836f297b | 2019-08-05 08:35:59 | Allow concurrent reads of the f_offset field of struct file by serializing both read/write operations using the existing file mutex. The vnode lock still grants exclusive write access to the offset; the mutex is only used to make the actual write atomic and prevent any concurrent reader from observing intermediate values. ok mpi@ visa@ | ||
| 6784024e | 2019-07-12 13:56:27 | Revert anton@ changes about read/write unlocking https://marc.info/?l=openbsd-cvs&m=156277704122293&w=2 ok anton@ | ||
| d038d3d5 | 2019-07-10 16:43:19 | Make read/write of the f_offset field belonging to struct file MP-safe; as part of the effort to unlock the kernel. Instead of relying on the vnode lock, introduce a dedicated lock per file. Exclusive write access is granted using the new foffset_enter and foffset_leave API. A convenience function foffset_get is also available for threads that only need to read the current offset. The lock acquisition order in vn_write has been changed to match the one in vn_read in order to avoid a potential deadlock. This change also gets rid of a documented race in vn_read(). Inspired by the FreeBSD implementation. With help and ok mpi@ visa@ | ||
| 4a4dc3ea | 2018-07-30 12:22:14 | Use FNONBLOCK instead of SS_NBIO to check/indicate that the I/O mode for sockets is non-blocking. This allows us to G/C SS_NBIO. Having to keep the two flags in sync in a mp-safe way is complicated. This change introduce a behavior change in sosplice(), it can now always block. However this should not matter much due to the socket lock being taken beforhand. ok bluhm@, benno@, visa@ | ||
| 9ff6e783 | 2018-07-18 10:47:02 | Replace VATTR_NULL() with memset(3) in fusefs_getattr(). VATTR_NULL() sets all members of struct vattr to VNOVAL (-1) instead of 0, which is what is appropriate here. The VATTR_NULL() macro is intended for initialising struct vattr when setting attributes. ok mpi@ | ||
| 3270c159 | 2018-07-17 13:12:08 | Don't send FBT_DESTROY if the FUSE connection is still PENDING. Also don't attempt to determine the size of the root inode. This is because we don't need to know the size of directories and FBT_GETATTR will also cause a deadlock if fuse_unmount(3) is called before the file system has a chance to process fbufs. Add corresponding regression test. ok mpi@ | ||
| 3c992bbf | 2018-07-16 16:44:09 | Insert the appropriate uvm_vnp_uncache(9) and uvm_vnp_setsize(9) kernel calls to ensure that the UVM cache for memory mapped files is up to date. ok mpi@ | ||
| 0d644658 | 2018-07-16 13:10:53 | Implement FBT_FSYNC, which is called on fsync(2) and fdatasync(2). Currently ignores the a_waitfor argument and always invokes the file system's fsync implementation synchronously. ok mpi@ | ||
| 63849fff | 2018-07-05 15:34:25 | Do not leak memory and a fp reference when !root passes `allow_other'. Fix CID 1470236. ok helg@ | ||
| 2fd654f7 | 2018-06-27 13:58:22 | Refactor to simplify - no functional change. ok mpi@ | ||
| b7e69da4 | 2018-06-25 12:03:53 | Remove unused fbuf parameter from fuse_device_cleanup(). ok mpi@ | ||
| 13907cde | 2018-06-21 14:53:36 | Don't timeout on fb_queue(9). The current process will block indefinitely and cannot be interrupted or killed. This is consistent with how VFS system calls should behave. If the file system becomes unresponsive then the only sane solution is for the user to kill the file system daemon. Implementing the equivalent of nfs -osoft or -ointr to either timeout or allow the blocking FUSE operation to be interrupted can be considered in a future patch. ok mpi@ | ||
| 5ff674a5 | 2018-06-21 14:17:23 | Drop redundant "node == parent node" checks from VOP_RMDIR() implementations. Rely on the VFS layer to do the checking. OK mpi@, helg@ | ||
| f49416c5 | 2018-06-20 10:57:39 | Fix formatting. | ||
| 0f4d2db5 | 2018-06-19 13:01:34 | Changes the default mount behaviour so only the user that mounts the file system can access it unless the allow_other mount options is specified. The allow_other mount option makes the file system available to other users just like any other mounted file system. ok mpi@ | ||
| 413ec31c | 2018-06-19 11:27:54 | Send the calling thread id, effective uid and gid, and umask to the FUSE file system. fuse_get_context(3) will now return the correct values. ok mpi@ | ||
| 56bd213a | 2018-06-18 12:04:20 | Allow write for non-regular files when file system is mounted read-only. Don't ask file system to check file access; always behave as if default_permissions option was specified. (this may change in a later commit) ok mpi@ | ||
| 93697741 | 2018-06-18 11:24:15 | chmod(2) should return EFTYPE if the effective user ID is not the super-user, the mode includes the sticky bit (S_ISVTX), and path does not refer to a directory. ok mpi@ | ||
| 4dd4d774 | 2018-06-07 13:37:27 | Make callers of VOP_CREATE(9) and VOP_MKNOD(9) responsible for unlocking the directory vnode. OK mpi@, helg@ | ||
| 34bd5584 | 2018-06-06 06:55:22 | Pass the socket to sounlock(), this prepare the terrain for per-socket locking. ok visa@, bluhm@ | ||
| 6c41c6ee | 2018-05-23 13:09:37 | Change wait text when waiting for FUSE file system daemon to respond. ok mpi@ | ||
| dae5ffec | 2018-05-22 12:52:14 | Implement support for libfuse use_ino option. This returns the file system's ino for VOP_GETATTR(9) and VOP_READDIR(9) rather than the internally generated fuse ino. ok mpi@ | ||
| 65de3e7d | 2018-05-21 13:06:00 | The flush operation is optional so don't return ENOSYS if the FUSE file system doesn't implement it. ok mpi@ | ||
| 5b6d7437 | 2018-05-20 03:06:50 | Prevent race condition if file system is accessed before it is initialised. Rather than failing, requests are now queued. ok mpi@ | ||
| e1487996 | 2018-05-20 02:51:26 | Implement FBT_FLUSH. This is sent whenever a file descriptor is closed with VOP_CLOSE(9). The associated FUSE file handle is however not closed at this time and is instead closed on VOP_RELEASE(9) because that's the only time it's guaranteed to be no longer used. Directory handles are now only closed on VOP_RELEASE(9) for the same reason. ok mpi@ | ||
| 903f970a | 2018-05-17 11:25:11 | Pass size argument to free(9). ok mpi@ | ||
| 390f10b5 | 2018-05-16 13:09:17 | libfuse should not maintain state for FBT_READDIR. If a directory is opened multiple times (either from the same process or different processes) then FUSE will not reliably return the directory entries to both file descriptors. ok mpi@ | ||
| bb72b40b | 2018-05-15 11:57:32 | Use memset(3) instead of bzero(3) for consistency and as per POSIX recommendation. | ||
| 6e880534 | 2018-05-02 02:24:55 | Remove proc from the parameters of vn_lock(). The parameter is unnecessary because curproc always does the locking. OK mpi@ | ||
| 36bb23f1 | 2018-04-28 03:13:04 | Clean up the parameters of VOP_LOCK() and VOP_UNLOCK(). It is always curproc that does the locking or unlocking, so the proc parameter is pointless and can be dropped. OK mpi@, deraadt@ | ||
| bae06bfd | 2018-04-27 10:13:37 | Move FREF() inside fd_getfile(). ok visa@ | ||
| 0c4143b5 | 2018-04-08 18:57:39 | AF_LOCAL was a failed attempt (by POSIX?) to seem less UNIX-specific, but AF_UNIX is both the historical _and_ standard name, so prefer and recommend it in the headers, manpages, and kernel. ok miller@ deraadt@ schwarze@ | ||
| d78cb2ff | 2018-03-28 16:34:28 | Use RWL_IS_VNODE with locks that are acquired through VOP_LOCK(), to appease WITNESS. ext2fs and ffs already use the flag. The same locking pattern appears with other file systems too, so this patch addresses the remaining cases. OK mpi@ |