History log of /src/sys/fs/puffs/puffs_node.c |
Revision | | Date | Author | Comments |
1.38 |
| 08-Feb-2018 |
dholland | Typos.
|
1.37 |
| 20-Aug-2016 |
hannken | Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
1.36 |
| 10-Nov-2014 |
maxv | branches: 1.36.2; Do not uselessly include <sys/malloc.h>.
|
1.35 |
| 04-Nov-2014 |
manu | Fix PUFFS node use-after-reclaim
When puffs_cookie2vnode() misses an entry, vcache_get() creates a new node (puffs_vfsop_loadvnode being called to initialize the PUFFS part), then it discovers it is VNON, and tries to vrele() it. vrele() calls VOP_INACTIVE(), which led us in puffs_vnop_inactive() where we sent a request to the filesystem for a node that already had been reclaimed.
The fix is to check for VNON nodes in puffs_vnop_inactive() and to return without doing anyting. This is suboptimal, but a better workaround would probably need to modify vcache API, with an impact on other filesystems. Let us keep it simple.
|
1.34 |
| 30-Sep-2014 |
hannken | Fix the puffs_sop_thread -> puffs_cookie2vnode path: - pass the cookie by reference - add missing mutex_exit() - update assertion for VNON typed vnodes
|
1.33 |
| 05-Sep-2014 |
manu | When changing a directory content, update the ctime/mtime in kernel cache, otherwise the updated ctime/mtime appears after the cached entry expire.
|
1.32 |
| 28-Aug-2014 |
hannken | Change puffs from hashlist to vcache. - field "pa_nhashbuckets" of struct "puffs_kargs" becomes a no-op. and should be removed on the next protocol version bump.
|
1.31 |
| 23-Jan-2014 |
hannken | branches: 1.31.4; Change vnode operations create, mknod, mkdir and symlink to return the resulting vnode *vpp unlocked.
Discussed on tech-kern@
Welcome to 6.99.30
|
1.30 |
| 17-Oct-2013 |
christos | - remove unused variables - add _NOERROR flavor macros for the case where errors are ignored.
|
1.29 |
| 06-Mar-2013 |
yamt | branches: 1.29.6; comments use sizeof(var) instead of sizeof(type) where possibly confusing
|
1.28 |
| 05-Nov-2012 |
dholland | Excise struct componentname from the namecache.
This uglifies the interface, because several operations need to be passed the namei flags and cache_lookup also needs for the time being to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.
The glop should be able to go away eventually but requires structural cleanup elsewhere first.
This change requires a kernel bump.
|
1.27 |
| 23-Jul-2012 |
manu | branches: 1.27.2; Backout NCHNAMLEN check for cache_enter. That change collided with rmind's move of this exact check into cache_enter
|
1.26 |
| 23-Jul-2012 |
manu | Di not call cache_enter with path components bigger than NCHNAMLEN, as it panics the kernel.
|
1.25 |
| 22-Jul-2012 |
rmind | Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc.
No objection on tech-kern@.
|
1.24 |
| 08-Apr-2012 |
manu | Add name and atttribute cache with filesytem provided TTL. lookup, create, mknod, mkdir, symlink, getattr and setattr messages have been extended so that attributes and their TTL can be provided by the filesytem. lookup, create, mknod, mkdir, and symlink messages are also extended so that the filesystem can provide name TTL.
|
1.23 |
| 19-Jan-2012 |
manu | branches: 1.23.2; Fix a race condition where the filesystem lookups a vnode that is being recycled, producing ENOENT while the file does exist.
Approved by yamt
|
1.22 |
| 19-Oct-2011 |
manu | branches: 1.22.2; 1.22.6; Remove #ifdef DIAGNOSTIC guards around KASSERT, as the macro contains them
|
1.21 |
| 18-Oct-2011 |
manu | Make sure pagedaemon does not sleep for memory in puffs_vnop_sleep. Add KASSERT on any sleeping memory allocation to check it cannot happen again.
|
1.20 |
| 29-Aug-2011 |
manu | Add a mutex for operations that touch size (setattr, getattr, write, fsync).
This is required to avoid data corruption bugs, where a getattr slices itself within a setattr operation, and sets the size to the stall value it got from the filesystem. That value is smaller than the one set by setattr, and the call to uvm_vnp_setsize() trigged a spurious truncate. The result is a chunk of zeroed data in the file.
Such a situation can easily happen when the ioflush thread issue a VOP_FSYNC/puffs_vnop_sync/flushvncache/dosetattrn while andother process do a sys_stat/VOP_GETATTR/puffs_vnop_getattr.
This mutex on size operation can be removed the day we decide VOP_GETATTR has to operated on a locked vnode, since the other operations that touch size already require that.
|
1.19 |
| 30-Jun-2011 |
wiz | dependant -> dependent
|
1.18 |
| 12-Jun-2011 |
rmind | Welcome to 5.99.53! Merge rmind-uvmplock branch:
- Reorganize locking in UVM and provide extra serialisation for pmap(9). New lock order: [vmpage-owner-lock] -> pmap-lock.
- Simplify locking in some pmap(9) modules by removing P->V locking.
- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).
- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner. Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.
- Unify /dev/mem et al in MI code and provide required locking (removes kernel-lock on some ports). Also, avoid cache-aliasing issues.
Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches formed the core changes of this branch.
|
1.17 |
| 25-Jul-2010 |
hannken | branches: 1.17.6; It makes no sense to call vget() with LK_RETRY.
|
1.16 |
| 21-Jul-2010 |
hannken | Make holding v_interlock mandatory for callers of vget().
Announced some time ago on tech-kern.
|
1.15 |
| 05-Nov-2009 |
pooka | branches: 1.15.2; 1.15.4; Kill suspend support. It was never implemented correctly: * it depended on the biglock (in a very cruel way) * it was attached to userspace transactions rather than logical fs operations
(If someone wants to revisit it some day, most of the stuff can be reused from cvs history)
|
1.14 |
| 30-Sep-2009 |
pooka | * fix a race i introduced almost two years ago in rev 1.116: operations creating a node cannot be considered outgoing operations, since after return from userspace they modify file system state by creating a new node. if we do not protect the file system by holding the directory lock, a lookup operation might race us into the kernel and create the node earlier. * remove pnode from hashlish before sending the reclaim faf off to userspace. also, hold pmp_lock while frobbing the list.
|
1.13 |
| 06-May-2008 |
ad | branches: 1.13.10; 1.13.18; PR kern/37950 Unmounting psshfs immediately panics the machine
puffs_getvnode() was inserting vnodes into mnt_vnodelist without taking a reference to the mount for each. When vnodes are scrubbed, refs to the vnodes mount structure are dropped => boom.
|
1.12 |
| 01-Mar-2008 |
rmind | branches: 1.12.2; 1.12.4; Welcome to 4.99.55:
- Add a lot of missing selinit() and seldestroy() calls.
- Merge selwakeup() and selnotify() calls into a single selnotify().
- Add an additional 'events' argument to selnotify() call. It will indicate which event (POLL_IN, POLL_OUT, etc) happen. If unknown, zero may be used.
Note: please pass appropriate value of 'events' where possible. Proposed on: <tech-kern>
|
1.11 |
| 28-Jan-2008 |
pooka | branches: 1.11.2; 1.11.6; For code clarity typedef void *puffs_cookie_t.
No functional change.
|
1.10 |
| 24-Jan-2008 |
ad | specfs changes for PR kern/37717 (raidclose() is no longer called on shutdown). There are still problems with device access and a PR will be filed.
- Kill checkalias(). Allow multiple vnodes to reference a single device.
- Don't play dangerous tricks with block vnodes to ensure that only one vnode can describe a block device. Instead, prohibit concurrent opens of block devices. As a bonus remove the unreliable code that prevents multiple file system mounts on the same device. It's no longer needed.
- Track opens by vnode and by device. Issue cdev_close() when the last open goes away, instead of abusing vnode::v_usecount to tell if the device is open.
|
1.9 |
| 02-Jan-2008 |
ad | Merge vmlocking2 to head.
|
1.8 |
| 17-Nov-2007 |
pooka | branches: 1.8.2; 1.8.6; Make puffs_updatenode() take a puffs_node instead of a vnode. This way we don't need to worry if a vnode has been reclaimed from under us.
|
1.7 |
| 16-Nov-2007 |
pooka | Restructure the messaging interface a bit more: make all interfacing with the file server happen through puffs_msg_enqueue() and puffs_msg_wait() instead of having a billion different routines. Build the existing system upon these two. Most importantly though, decouple insertation into the op queue from the actual wait. This is useful for a number of reasons coming soon to a cvs repo near you.
|
1.6 |
| 11-Oct-2007 |
pooka | branches: 1.6.2; 1.6.4; 1.6.6; 1.6.8; Part 1/n of some pretty extensive changes to how the kernel module interacts with the userspace file server:
* since the kernel-user communication is not purely request-response anymore (hasn't been since 2006), try to rename some "request" to "message". more similar mangling will take place in the future.
* completely rework how messages are allocated. previously most of them were borrowed from the stack (originally *all* of them), but now always allocate dynamically. this makes the structure of the code much cleaner. also makes it possible to fix a locking order violation. it enables plenty of future enhancements.
* start generalizing the transport interface to be independent of puffs
* move transport interface to read/write instead of ioctl. the old one had legacy design problems, and besides, ioctl's suck. implement a very generic version for now; this will be worked on later hopefully some day reaching "highly optimized".
* implement libpuffs support behind existing library request interfaces. this will change eventually (I hate those interfaces)
|
1.5 |
| 10-Oct-2007 |
ad | Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking. - simple_lock -> kmutex in a few places. - Fix some simple locking problems.
|
1.4 |
| 02-Oct-2007 |
pooka | branches: 1.4.2; 1.4.4; 1.4.6; If kernel resource allocation fails after the file server has committed something, issue an abort. The abort is done through the regular op channel, e.g. failed mkdir leads to regular rmdir, inactive and reclaim. No internal interface is planned currently for the one file system out of a million which would implement it to benefit from the one case in a billion where kernel resource allocation actually does fail and out of that one case in a trillion where internal vs. external would make a difference.
|
1.3 |
| 01-Oct-2007 |
pooka | * better error checking: validate error values received from userland to be vaild errno values * include string describing error in PUFFS_ERR * get rid of union in puffs_req, it's nothing but trouble * pass pmp to async i/o callbacks
|
1.2 |
| 27-Sep-2007 |
pooka | comments & other minor maintenance
|
1.1 |
| 27-Sep-2007 |
pooka | Split routines handling nodes from puffs_subr to puffs_node. No functional change.
|
1.4.6.6 |
| 28-Oct-2007 |
ad | Fix up mnt_vnodelist handling.
|
1.4.6.5 |
| 23-Oct-2007 |
ad | Sync with head.
|
1.4.6.4 |
| 12-Oct-2007 |
ad | Sync with head.
|
1.4.6.3 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.4.6.2 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.4.6.1 |
| 02-Oct-2007 |
ad | file puffs_node.c was added on branch vmlocking on 2007-10-09 13:44:18 +0000
|
1.4.4.3 |
| 14-Oct-2007 |
yamt | sync with head.
|
1.4.4.2 |
| 06-Oct-2007 |
yamt | sync with head.
|
1.4.4.1 |
| 02-Oct-2007 |
yamt | file puffs_node.c was added on branch yamt-x86pmap on 2007-10-06 15:29:48 +0000
|
1.4.2.4 |
| 21-Nov-2007 |
joerg | Sync with HEAD.
|
1.4.2.3 |
| 26-Oct-2007 |
joerg | Sync with HEAD.
Follow the merge of pmap.c on i386 and amd64 and move pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup code to restore CR4 before jumping back into kernel space as the large page option might cover that.
|
1.4.2.2 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.4.2.1 |
| 02-Oct-2007 |
joerg | file puffs_node.c was added on branch jmcneill-pm on 2007-10-02 18:28:52 +0000
|
1.6.8.4 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.6.8.3 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.6.8.2 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.6.8.1 |
| 11-Oct-2007 |
matt | file puffs_node.c was added on branch matt-armv6 on 2007-11-06 23:31:15 +0000
|
1.6.6.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.6.6.1 |
| 19-Nov-2007 |
mjf | Sync with HEAD.
|
1.6.4.6 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.6.4.5 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.6.4.4 |
| 21-Jan-2008 |
yamt | sync with head
|
1.6.4.3 |
| 07-Dec-2007 |
yamt | sync with head
|
1.6.4.2 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.6.4.1 |
| 11-Oct-2007 |
yamt | file puffs_node.c was added on branch yamt-lazymbuf on 2007-10-27 11:35:10 +0000
|
1.6.2.1 |
| 18-Nov-2007 |
bouyer | Sync with HEAD
|
1.8.6.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.8.2.1 |
| 04-Dec-2007 |
ad | Pull the vmlocking changes into a new branch.
|
1.11.6.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.11.6.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.11.2.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.12.4.3 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.12.4.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.12.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.12.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.13.18.1 |
| 21-Apr-2010 |
matt | sync to netbsd-5
|
1.13.10.4 |
| 25-Jan-2012 |
riz | Pull up following revision(s) (requested by manu in ticket #1714): sys/fs/puffs/puffs_node.c: revision 1.23 Fix a race condition where the filesystem lookups a vnode that is being recycled, producing ENOENT while the file does exist. Approved by yamt
|
1.13.10.3 |
| 02-Nov-2011 |
riz | Pull up following revision(s) (requested by manu in ticket #1679): sys/fs/puffs/puffs_vnops.c: revision 1.157 sys/fs/puffs/puffs_vnops.c: revision 1.158 sys/fs/puffs/puffs_vnops.c: revision 1.159 sys/fs/puffs/puffs_vfsops.c: revision 1.97 sys/fs/puffs/puffs_vfsops.c: revision 1.99 sys/fs/puffs/puffs_vnops.c: revision 1.160 sys/fs/puffs/puffs_vfsops.c: revision 1.100 sys/miscfs/syncfs/sync_subr.c: revision 1.47 sys/fs/puffs/puffs_node.c: revision 1.21 sys/fs/puffs/puffs_node.c: revision 1.22 sys/fs/puffs/puffs_msgif.c: revision 1.88 sys/fs/puffs/puffs_msgif.c: revision 1.89 sys/fs/puffs/puffs_vnops.c: revision 1.156 Make sure ioflush does not sleep in PUFFS code path, waiting for a mutex, a memory allocation, or a response from the filesystem. This avoids deadlocks in the following situations: 1) when memory is low: ioflush waits the fileystem, the fielsystem waits for memory 2) when the filesystem does not respond (e.g.: network outage ona distributed filesystem) Fix the build that was broken by struct lwp *updateproc reference in RUMP-visible code. Instead of checking that updateproc (aka ioflush, aka syncer) will not sleep in PUFFS code, I check for any kernel thread: after all none of them are designed to hang awaiting for a remote filesystem operation to complete. Roll back the change that forced kernel threads to not sleep in PUFFS. The change does not make consensus, since only pagedaemon should need it. Other threads will tolerate sleeping, and problems here are only symptoms that something is going wrong in memory management. The cause, not the symptoms, need to be fixed. Make sure pagedaemon does not sleep for memory in puffs_vnop_sleep. Add KASSERT on any sleeping memory allocation to check it cannot happen again. Remove #ifdef DIAGNOSTIC guards around KASSERT, as the macro contains them
|
1.13.10.2 |
| 17-Sep-2011 |
bouyer | Pull up following revision(s) (requested by manu in ticket #1666): sys/fs/puffs/puffs_sys.h: revision 1.78 via patch sys/fs/puffs/puffs_node.c: revision 1.20 via patch sys/fs/puffs/puffs_vnops.c: revision 1.155 via patch Add a mutex for operations that touch size (setattr, getattr, write, fsync). This is required to avoid data corruption bugs, where a getattr slices itself within a setattr operation, and sets the size to the stall value it got from the filesystem. That value is smaller than the one set by setattr, and the call to uvm_vnp_setsize() trigged a spurious truncate. The result is a chunk of zeroed data in the file. Such a situation can easily happen when the ioflush thread issue a VOP_FSYNC/puffs_vnop_sync/flushvncache/dosetattrn while andother process do a sys_stat/VOP_GETATTR/puffs_vnop_getattr. This mutex on size operation can be removed the day we decide VOP_GETATTR has to operated on a locked vnode, since the other operations that touch size already require that.
|
1.13.10.1 |
| 03-Oct-2009 |
snj | Pull up following revision(s) (requested by pooka in ticket #1042): sys/fs/puffs/puffs_node.c: revision 1.14 sys/fs/puffs/puffs_vnops.c: revision 1.134 * fix a race i introduced almost two years ago in rev 1.116: operations creating a node cannot be considered outgoing operations, since after return from userspace they modify file system state by creating a new node. if we do not protect the file system by holding the directory lock, a lookup operation might race us into the kernel and create the node earlier. * remove pnode from hashlish before sending the reclaim faf off to userspace. also, hold pmp_lock while frobbing the list.
|
1.15.4.3 |
| 19-May-2011 |
rmind | Implement sharing of vnode_t::v_interlock amongst vnodes: - Lock is shared amongst UVM objects using uvm_obj_setlock() or getnewvnode(). - Adjust vnode cache to handle unsharing, add VI_LOCKSHARE flag for that. - Use sharing in tmpfs and layerfs for underlying object. - Simplify locking in ubc_fault(). - Sprinkle some asserts.
Discussed with ad@.
|
1.15.4.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.15.4.1 |
| 16-Mar-2010 |
rmind | Change struct uvm_object::vmobjlock to be dynamically allocated with mutex_obj_alloc(). It allows us to share the locks among UVM objects.
|
1.15.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.17.6.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.22.6.2 |
| 29-Apr-2012 |
mrg | sync to latest -current.
|
1.22.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.22.2.4 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.22.2.3 |
| 16-Jan-2013 |
yamt | sync with (a bit old) head
|
1.22.2.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.22.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.23.2.3 |
| 03-Nov-2014 |
msaitoh | Pull up following revision(s) (requested by manu in ticket #1149): sys/fs/puffs/puffs_node.c: revision 1.33 sys/fs/puffs/puffs_vnops.c: revision 1.185 When changing a directory content, update the ctime/mtime in kernel cache, otherwise the updated ctime/mtime appears after the cached entry expire.
|
1.23.2.2 |
| 12-Aug-2012 |
martin | Pull up following revision(s) (requested by manu in ticket #484): sys/fs/nilfs/nilfs_vnops.c: revision 1.18 sys/ufs/ufs/ufs_lookup.c: revision 1.117 sys/nfs/nfs_vnops.c: revision 1.295 sys/ufs/chfs/chfs_vnops.c: revision 1.8 sys/ufs/ext2fs/ext2fs_lookup.c: revision 1.70 sys/fs/unionfs/unionfs_vnops.c: revision 1.6 sys/kern/vfs_cache.c: revision 1.89 sys/fs/efs/efs_vnops.c: revision 1.26 sys/fs/hfs/hfs_vnops.c: revision 1.26 sys/fs/adosfs/adlookup.c: revision 1.16 sys/fs/puffs/puffs_vnops.c: revision 1.168 sys/fs/tmpfs/tmpfs_vnops.c: revision 1.98 sys/fs/ntfs/ntfs_vnops.c: revision 1.52 sys/fs/cd9660/cd9660_lookup.c: revision 1.20 sys/fs/msdosfs/msdosfs_lookup.c: revision 1.24 sys/fs/smbfs/smbfs_vnops.c: revision 1.80 sys/fs/udf/udf_vnops.c: revision 1.72 sys/fs/filecorefs/filecore_lookup.c: revision 1.14 sys/fs/puffs/puffs_node.c: revision 1.25 Move some the test for MAKEENTRY into the cache_enter(9). Make some variables in vfs_cache.c static, __read_mostly, etc. No objection on tech-kern@.
|
1.23.2.1 |
| 23-Apr-2012 |
riz | Pull up following revision(s) (requested by manu in ticket #195): lib/libskey/skeysubr.c: revision 1.27 lib/libkvm/kvm_getloadavg.c: revision 1.11 lib/libwrap/update.c: revision 1.9 lib/liby/yyerror.c: revision 1.9 lib/libpuffs/puffs_ops.3: revision 1.30 lib/libwrap/misc.c: revision 1.10 lib/libwrap/hosts_access.c: revision 1.20 lib/libpuffs/pnode.c: revision 1.11 lib/libperfuse/subr.c: revision 1.17 lib/libpuffs/pnode.c: revision 1.12 lib/libperfuse/subr.c: revision 1.18 lib/libwrap/options.c: revision 1.15 lib/libwrap/fix_options.c: revision 1.11 lib/libperfuse/ops.c: revision 1.52 lib/libperfuse/ops.c: revision 1.53 lib/libperfuse/ops.c: revision 1.54 lib/libwrap/hosts_ctl.c: revision 1.5 lib/libintl/gettext.c: revision 1.27 lib/libwrap/shell_cmd.c: revision 1.6 lib/libpuffs/dispatcher.c: revision 1.39 lib/libperfuse/perfuse_priv.h: revision 1.27 lib/libwrap/socket.c: revision 1.19 lib/libpuffs/puffs.3: revision 1.50 lib/libperfuse/perfuse_priv.h: revision 1.28 lib/libpuffs/puffs_priv.h: revision 1.45 lib/libpuffs/puffs.3: revision 1.51 lib/libperfuse/perfuse_priv.h: revision 1.29 lib/libwrap/percent_x.c: revision 1.5 lib/libpuffs/puffs.3: revision 1.52 lib/libperfuse/debug.c: revision 1.11 sys/fs/puffs/puffs_vnops.c: revision 1.165 lib/libwrap/tcpd.h: revision 1.13 sys/fs/puffs/puffs_vnops.c: revision 1.166 lib/libwrap/eval.c: revision 1.7 sys/fs/puffs/puffs_msgif.h: revision 1.78 sys/fs/puffs/puffs_vfsops.c: revision 1.101 lib/libwrap/rfc931.c: revision 1.9 lib/libwrap/clean_exit.c: revision 1.5 lib/libpuffs/puffs.h: revision 1.120 lib/libc/stdlib/jemalloc.c: revision 1.27 lib/librmt/rmtlib.c: revision 1.26 lib/libpuffs/puffs.h: revision 1.121 sys/fs/puffs/puffs_sys.h: revision 1.79 lib/librumpclient/rumpclient.c: revision 1.48 lib/libwrap/refuse.c: revision 1.5 lib/libperfuse/perfuse.c: revision 1.26 lib/libperfuse/perfuse.c: revision 1.27 tests/fs/puffs/t_fuzz.c: revision 1.5 lib/libperfuse/perfuse.c: revision 1.28 lib/libpuffs/dispatcher.c: revision 1.40 sys/fs/puffs/puffs_node.c: revision 1.24 lib/libwrap/diag.c: revision 1.9 lib/libintl/textdomain.c: revision 1.13 Use C89 function definition Add name and atttribute cache with filesytem provided TTL. lookup, create, mknod, mkdir, symlink, getattr and setattr messages have been extended so that attributes and their TTL can be provided by the filesytem. lookup, create, mknod, mkdir, and symlink messages are also extended so that the filesystem can provide name TTL. Add PUFFS_KFLAG_CACHE_FS_TTL flag to puffs_init(3) to use name and attribute cache with filesystem provided TTL. lookup, create, mknod, mkdir, symlink, getattr and setattr messages have been extended so that attributes and their TTL can be provided by the filesytem. lookup, create, mknod, mkdir, and symlink messages are also extended so that the filesystem can provide name TTL. The filesystem updates attributes and TTL using puffs_pn_getvap(3), puffs_pn_getvattl(3), and puffs_pn_getcnttl(3) Use new PUFFS_KFLAG_CACHE_FS_TTL option to puffs_init(3) so that FUSE TTL on name and attributes are used. This save many PUFFS operations and improves performances. PUFFS_KFLAG_CACHE_FS_TTL is #ifdef'ed in many places for now so that libperfuse can still be used on netbsd-5. Split file system. Comma fixes. Remove dangling "and". Bump date for previous. - Makesure update_va does not change vnode size when it should not. For instance when doing a fault-issued VOP_GETPAGES within VOP_WRITE, changing size leads to panic: genfs_getpages: past eof. -Handle ticks wrap around for vnode name andattribute timeout - When using PUFFS_KFLAG_CACHE_FS_TTL, do not use puffs_node to carry attribute and TTL fora newly created node. Instead extend puffs_newinfo and add puffs_newinfo_setva() and puffs_newinfo_setttl() - Remove node_mk_common_final in libperfuse. It used to set uid/gid for a newly created vnode but has been made redundant along time ago since uid and gid are properly set in FUSE header. - In libperfuse, check for corner case where opc = 0 on INACTIVE and RECLAIM (how is it possible? Check for it to avoid a crash anyway) - In libperfuse, make sure we unlimit RLIMIT_AS and RLIMIT_DATA so that we do notrun out of memory because the kernel is lazy at reclaiming vnodes. - In libperfuse, cleanup style of perfuse_destroy_pn() Do not set PUFFS_KFLAG_CACHE_FS_TTL for PUFFS tests
|
1.27.2.4 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.27.2.3 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.27.2.2 |
| 23-Jun-2013 |
tls | resync from head
|
1.27.2.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.29.6.1 |
| 18-May-2014 |
rmind | sync with head
|
1.31.4.5 |
| 17-Jan-2015 |
martin | Pull up following revision(s) (requested by maxv in ticket #427): sys/compat/svr4/svr4_schedctl.c: revision 1.8 sys/netinet/tcp_timer.c: revision 1.88 sys/miscfs/genfs/layer_vfsops.c: revision 1.45 sys/compat/svr4/svr4_ioctl.c: revision 1.37 sys/ufs/chfs/chfs_vfsops.c: revision 1.14 sys/miscfs/fdesc/fdesc_vfsops.c: revision 1.91 sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.30 sys/compat/common/kern_time_50.c: revision 1.28 sys/netinet6/ip6_forward.c: revision 1.74 sys/miscfs/umapfs/umap_vnops.c: revision 1.57 sys/compat/svr4/svr4_fcntl.c: revision 1.74 distrib/sets/lists/comp/mi: revision 1.1931 sys/netinet6/udp6_output.c: revision 1.46 sys/fs/puffs/puffs_compat.c: revision 1.3 sys/fs/udf/udf_rename.c: revision 1.11 sys/compat/svr4/svr4_filio.c: revision 1.24 sys/fs/udf/udf_rename.c: revision 1.12 sys/netinet/tcp_usrreq.c: revision 1.202 sys/miscfs/umapfs/umap_subr.c: revision 1.29 sys/compat/linux/common/linux_fadvise64.c: revision 1.3 sys/netinet/if_atm.c: revision 1.34 sys/miscfs/procfs/procfs_subr.c: revision 1.106 sys/miscfs/genfs/layer_subr.c: revision 1.37 sys/netinet/tcp_sack.c: revision 1.30 sys/compat/freebsd/freebsd_misc.c: revision 1.33 sys/compat/freebsd/freebsd_file.c: revision 1.33 sys/ufs/chfs/chfs_vnode.c: revision 1.12 sys/compat/svr4/svr4_ttold.c: revision 1.34 sys/compat/linux/common/linux_file.c: revision 1.114 sys/compat/linux/arch/mips/linux_machdep.c: revision 1.43 sys/compat/linux/common/linux_signal.c: revision 1.76 sys/compat/common/compat_util.c: revision 1.46 sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.18 sys/compat/svr4/svr4_sockio.c: revision 1.36 sys/compat/linux/arch/arm/linux_machdep.c: revision 1.32 sys/compat/svr4/svr4_signal.c: revision 1.66 sys/kern/kern_exec.c: revision 1.410 sys/fs/puffs/puffs_vfsops.c: revision 1.115 sys/compat/svr4/svr4_exec_elf64.c: revision 1.15 sys/compat/linux/arch/i386/linux_machdep.c: revision 1.159 sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.50 sys/compat/linux32/common/linux32_misc.c: revision 1.24 sys/netinet/in_pcb.c: revision 1.153 sys/sys/malloc.h: revision 1.116 sys/compat/common/if_43.c: revision 1.9 share/man/man9/Makefile: revision 1.380 sys/netinet/tcp_vtw.c: revision 1.12 sys/miscfs/umapfs/umap_vfsops.c: revision 1.95 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.186 sys/compat/common/uipc_syscalls_43.c: revision 1.46 sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.115 sys/fs/puffs/puffs_msgif.c: revision 1.97 sys/compat/svr4/svr4_ipc.c: revision 1.27 sys/compat/linux/common/linux_exec.c: revision 1.117 sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.66 sys/netinet/tcp_output.c: revision 1.179 sys/compat/svr4/svr4_termios.c: revision 1.28 sys/fs/udf/udf_strat_bootstrap.c: revision 1.4 sys/fs/puffs/puffs_subr.c: revision 1.67 sys/fs/puffs/puffs_node.c: revision 1.36 sys/miscfs/overlay/overlay_vnops.c: revision 1.21 sys/fs/cd9660/cd9660_node.c: revision 1.34 sys/netinet/raw_ip.c: revision 1.146 sys/sys/mallocvar.h: revision 1.13 sys/miscfs/overlay/overlay_vfsops.c: revision 1.63 share/man/man9/malloc.9: revision 1.50 sys/netinet6/dest6.c: revision 1.18 sys/compat/linux/common/linux_uselib.c: revision 1.33 sys/compat/linux/common/linux_socket.c: revision 1.120 share/man/man9/malloc.9: revision 1.51 sys/netinet/tcp_subr.c: revision 1.257 sys/compat/linux/common/linux_socketcall.c: revision 1.45 sys/compat/linux/common/linux_fadvise64_64.c: revision 1.3 sys/compat/freebsd/freebsd_ipc.c: revision 1.17 sys/compat/linux/common/linux_misc_notalpha.c: revision 1.109 sys/compat/linux/arch/alpha/linux_pipe.c: revision 1.17 sys/netinet6/in6_pcb.c: revision 1.132 sys/netinet6/in6_ifattach.c: revision 1.94 sys/compat/svr4/svr4_exec_elf32.c: revision 1.15 sys/miscfs/nullfs/null_vfsops.c: revision 1.90 sys/fs/cd9660/cd9660_util.c: revision 1.12 sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.48 sys/compat/freebsd/freebsd_exec_elf32.c: revision 1.20 sys/miscfs/procfs/procfs_vfsops.c: revision 1.94 sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.28 sys/compat/linux/common/linux_sched.c: revision 1.67 sys/compat/linux/common/linux_exec_aout.c: revision 1.67 sys/compat/linux/common/linux_pipe.c: revision 1.67 sys/compat/linux/common/linux_llseek.c: revision 1.34 sys/compat/linux/arch/mips/linux_ptrace.c: revision 1.10 Do not uselessly include <sys/malloc.h>. Cleanup: - remove struct kmembuckets (dead) - correctly deadify MALLOC_XX - remove MALLOC_DEFINE_LIMIT and MALLOC_JUSTDEFINE_LIMIT (dead) - remove malloc_roundup(), malloc_type_setlimit(), MALLOC_DEFINE_LIMIT() and MALLOC_JUSTDEFINE_LIMIT() from man 9 malloc New sentence, new line. Bump date for previous. Obsolete malloc_roundup(9), malloc_type_setlimit(9) and MALLOC_DEFINE_LIMIT(9) man pages.
|
1.31.4.4 |
| 09-Nov-2014 |
msaitoh | Pull up following revision(s) (requested by manu in ticket #194): sys/fs/puffs/puffs_vnops.c: revision 1.197 sys/fs/puffs/puffs_node.c: revision 1.35 Fix PUFFS node use-after-reclaim When puffs_cookie2vnode() misses an entry, vcache_get() creates a new node (puffs_vfsop_loadvnode being called to initialize the PUFFS part), then it discovers it is VNON, and tries to vrele() it. vrele() calls VOP_INACTIVE(), which led us in puffs_vnop_inactive() where we sent a request to the filesystem for a node that already had been reclaimed. The fix is to check for VNON nodes in puffs_vnop_inactive() and to return without doing anyting. This is suboptimal, but a better workaround would probably need to modify vcache API, with an impact on other filesystems. Let us keep it simple.
|
1.31.4.3 |
| 30-Sep-2014 |
martin | Pull up following revision(s) (requested by hannken in ticket #67): sys/fs/puffs/puffs_node.c: revision 1.34 sys/fs/puffs/puffs_vnops.c: revision 1.187 Fix the puffs_sop_thread -> puffs_cookie2vnode path: - pass the cookie by reference - add missing mutex_exit() - update assertion for VNON typed vnodes
|
1.31.4.2 |
| 10-Sep-2014 |
martin | Pull up following revision(s) (requested by manu in ticket #79): sys/fs/puffs/puffs_node.c: revision 1.33 sys/fs/puffs/puffs_vnops.c: revision 1.185 When changing a directory content, update the ctime/mtime in kernel cache, otherwise the updated ctime/mtime appears after the cached entry expire.
|
1.31.4.1 |
| 29-Aug-2014 |
martin | Pull up following revision(s) (requested by hannken in ticket #67): sys/fs/puffs/puffs_sys.h: revision 1.86 sys/fs/puffs/puffs_vfsops.c: revision 1.114 sys/fs/puffs/puffs_msgif.c: revision 1.95 sys/fs/puffs/puffs_node.c: revision 1.32 sys/fs/puffs/puffs_vnops.c: revision 1.184 Change puffs from hashlist to vcache. - field "pa_nhashbuckets" of struct "puffs_kargs" becomes a no-op. and should be removed on the next protocol version bump.
|
1.36.2.1 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|