kernel/tmpfs: Remove a useless (and wrong, anyway) header.
kevent: Restore old EV_EOF semantics- EV_EOF should be set when the other side closed the connection, even if there are data pending in the read buffer (the old semantics).- EV_NODATA is added t
kevent: Restore old EV_EOF semantics- EV_EOF should be set when the other side closed the connection, even if there are data pending in the read buffer (the old semantics).- EV_NODATA is added to indicate there are no more data pending in the buffer and EOF is detected (EV_EOF is also set in this situation).Kernel code now tests EV_NODATA instead of EV_EOF, since EV_NODATAdelivers the information which was delivered by the EV_EOF beforethis commit.DragonFly-Bug: http://bugs.dragonflybsd.org/issue1998
show more ...
kernel - Fix various memory & swap leaks in tmpfs* tmpfs was using a vref() instead of a vget() (cache_vget() to be precise) which does not necessarily reactivate an inactive vnode. This can cau
kernel - Fix various memory & swap leaks in tmpfs* tmpfs was using a vref() instead of a vget() (cache_vget() to be precise) which does not necessarily reactivate an inactive vnode. This can cause the vnode to languish in the vnode cache even when the underlying file has been removed and no longer has any open() descriptors.* tmpfs_nrmdir(), tmpfs_nremove(), and tmpfs_nrename() (for target replacement renames) was effected.Reported-by: sephe and others, tested by sephe, dillon
kernel - Remove the last MP locks from tmpfs (2).* The tmpfs interlock is the per-mount token now, not the MP lockReported-by: Venkatesh Srinivas <me@endeavour.zapto.org>
kernel - Remove the last MP locks from tmpfs.* Remove get_mplock/rel_mplock calls in tmpfs which are no longer needed. This will improve the write path a bit though we still utilize the per-mou
kernel - Remove the last MP locks from tmpfs.* Remove get_mplock/rel_mplock calls in tmpfs which are no longer needed. This will improve the write path a bit though we still utilize the per-mount token in most places.Reported-by: Venkatesh Srinivas <me@endeavour.zapto.org>
kernel -- tmpfs: Mark tmpfs_write MPSAFE.Push down synchronization for tmpfs_write from VN to tmpfs. Note thattmpfs_write still takes the MPlock.
Remove mplock2.h include from files not using the mplock.
kernel -- tmpfs: MPSAFE tmpfs_getattr.Use the per-mount token to synchronize tmpfs_getattr.
kernel -- tmpfs: Make tmpfs_strategy MPSAFE.tmpfs_strategy now acquires only the per-mount token directly.
kernel -- tmpfs: Make tmpfs_read() MPSAFE.tmpfs_read() no longer takes the MPlock or per-mount token via the VOPcallbacks. It obtains the mount token itself around the uncached read path.
kernel - Enhance getcacheblk() (improve saturated write performance (3)).* Change getcacheblk() to use getblk() instead of findblk() when the block size is known, allowing a cached buffer to be r
kernel - Enhance getcacheblk() (improve saturated write performance (3)).* Change getcacheblk() to use getblk() instead of findblk() when the block size is known, allowing a cached buffer to be reinstantiated from VM backing store in the MPSAFE path. Well, mostly MPSAFE, the vm_token is still acquired, but this is still much faster than what HAMMER does when the buffer is not in-cache.* This more than doubles blogbench performance w/HAMMER and further reduces concurrent read vs write conflicts.
kernel - Change the discrete mplock into mp_token* Use a lwkt_token for the mp_lock. This consolidates our longer-term spinnable locks (the mplock and tokens) into just tokens, making it easie
kernel - Change the discrete mplock into mp_token* Use a lwkt_token for the mp_lock. This consolidates our longer-term spinnable locks (the mplock and tokens) into just tokens, making it easier to solve performance issues.* Some refactoring of the token code was needed to guarantee the ordering when acquiring and releasing the mp_token vs other tokens.* The thread switch code, lwkt_switch(), is simplified by this change though not necessarily faster.* Remove td_mpcount, mp_lock, and other related fields.* Remove assertions related to td_mpcount and friends, generally folding them into similar assertions for tokens.
kernel - tmpfs - Remove mplock in tmpfs_read().
tmpfs - fix chgrp(), or chown() when one of uid/gid is to be unchangeduid/gid values from function arguments were being used instead of the onesarranged by vop_helper_chown(), accidentally setting
tmpfs - fix chgrp(), or chown() when one of uid/gid is to be unchangeduid/gid values from function arguments were being used instead of the onesarranged by vop_helper_chown(), accidentally setting one of them to -1(4294967295) instead of leaving it unchanged.
kernel - Fix access chceck in tmpfs that prevented chroot's into it* Fix broken code which caused access() calls into tmpfs to assume write permission was being requested when it was not.Submit
kernel - Fix access chceck in tmpfs that prevented chroot's into it* Fix broken code which caused access() calls into tmpfs to assume write permission was being requested when it was not.Submitted-by: Rumko <rumcic@gmail.com>
kernel: Remove unneeded inclusions of <sys/cdefs.h>.
kernel - Fix compile error w/last commit (unused var)* Remove unused variableReported-by: Rumko
kernel - Add kqueue and fix chflags handling for tmpfs* Implement kqueue ops for tmpfs so things like tail -f work properly.* Redo all the chflags handling and checks to use the helper functions,
kernel - Add kqueue and fix chflags handling for tmpfs* Implement kqueue ops for tmpfs so things like tail -f work properly.* Redo all the chflags handling and checks to use the helper functions, also getting ridding of the horribly broken FREAD/FWRITE tests on node->tn_flags (which is the chflags flags, not the open flags). This fixes chflags handling for tmpfs. Previously doing something like 'make installkernel ... DESTDIR=<sometmpfs_target>' would fail on re-install due to chflags not working properly.* Fix a lost node unlock in tmpfs_chflags()Reported-by: Nuno Antunes <nuno.antunes@gmail.com>
kernel - tmpfs: Convert tmpfs name malloc zone to a per-mount zone.Now filenames from one tmpfs do not exhaust space in other ones.Related to bug 1726.
kernel - tmpfs: Set M_NULLOK on node allocations and safe node_init againstnull node pointers.Dragonfly-bug: Still 1726 (tmpfs malloc limit exceeded).
spinlocks - Rename API to spin_{try,un,}lock* Rename the API to spin_trylock, spin_unlock and spin_lock instead of spin_lock_wr, spin_unlock_wr and spin_trylock_wr now that we only have exclusi
spinlocks - Rename API to spin_{try,un,}lock* Rename the API to spin_trylock, spin_unlock and spin_lock instead of spin_lock_wr, spin_unlock_wr and spin_trylock_wr now that we only have exclusive spinlocks.* 99% of this patch was generated by a semantic coccinelle patch
tmpfs: Allow kmalloc from M_TMPFSNAME zone to return NULL; handle null cases.tmpfs now survives fsstress without panicing the system.
tmpfs: Convert dirent malloc zone to a per-mount zone.
tmpfs: Convert tmpfs node allocation zone into a per-mount pool.Each tmpfs mount tracked the number and max nodes separately, leading to aninaccurate measure of the limit of the tmpfs node malloc
tmpfs: Convert tmpfs node allocation zone into a per-mount pool.Each tmpfs mount tracked the number and max nodes separately, leading to aninaccurate measure of the limit of the tmpfs node malloc zone. We now createa kmalloc zone for each mount, as in HAMMER (hammer_vfsops.c).
tmpfs: Set tmpfs node malloc zone limit to be the same as tm_node_max.This doesn't resolve panics from running fsstress on tmpfs, but it is a firststep towards solving these problems. No considera
tmpfs: Set tmpfs node malloc zone limit to be the same as tm_node_max.This doesn't resolve panics from running fsstress on tmpfs, but it is a firststep towards solving these problems. No consideration of multiple tmpfs mountsat the minute either.
12345678