History log of /src/sys/rump/librump/rumpvfs/rumpfs.c |
Revision | | Date | Author | Comments |
1.167 |
| 27-Jun-2023 |
andvar | remove double/tripple o in comments, where it likely was not added on purpose.
|
1.166 |
| 20-Oct-2021 |
thorpej | Overhaul of the EVFILT_VNODE kevent(2) filter:
- Centralize vnode kevent handling in the VOP_*() wrappers, rather than forcing each individual file system to deal with it (except VOP_RENAME(), because VOP_RENAME() is a mess and we currently have 2 different ways of handling it; at least it's reasonably well-centralized in the "new" way). - Add support for NOTE_OPEN, NOTE_CLOSE, NOTE_CLOSE_WRITE, and NOTE_READ, compatible with the same events in FreeBSD. - Track which kevent notifications clients are interested in receiving to avoid doing work for events no one cares about (avoiding, e.g. taking locks and traversing the klist to send a NOTE_WRITE when someone is merely watching for a file to be deleted, for example).
In support of the above:
- Add support in vnode_if.sh for specifying PRE- and POST-op handlers, to be invoked before and after vop_pre() and vop_post(), respectively. Basic idea from FreeBSD, but implemented differently. - Add support in vnode_if.sh for specifying CONTEXT fields in the vop_*_args structures. These context fields are used to convey information between the file system VOP function and the VOP wrapper, but do not occupy an argument slot in the VOP_*() call itself. These context fields are initialized and subsequently interpreted by PRE- and POST-op handlers. - Version VOP_REMOVE(), uses the a context field for the file system to report back the resulting link count of the target vnode. Return this in tmpfs, udf, nfs, chfs, ext2fs, lfs, and ufs.
NetBSD 9.99.92.
|
1.165 |
| 18-Jul-2021 |
dholland | Use macros for the canned parts of device and fifo vnode op tables.
Add GENFS_SPECOP_ENTRIES and GENFS_FIFOOP_ENTRIES macros that contain the portion of the vnode ops table declaration that is (conservatively) the same in every fs. Use these in every fs that supports devices and/or fifos with separate ops tables.
Note that ptyfs works differently (it has one type of vnode with open-coded dispatch to the specfs code, which I haven't changed in this commit) and rump/librump/rumpvfs/rumpfs.c has an indirect dynamic dispatch that already does more or less the same thing, which I also haven't changed.
Also note that this anticipates a few bits in the next changeset here and there, and adds missing but unreachable calls in some cases (e.g. most fses weren't defining whiteout on devices and fifos, but it isn't reachable there), and it changes parsepath on devices and fifos to genfs_badop from genfs_parsepath (but it's not reachable there either).
It appears that devices in kernfs were missing kqfilter, so it's possible that if you try to use kqueue on /kern/rootdev that it'll explode.
And finally note that the ops declaration tables aren't order-dependent. (Other than vop_default_desc has to come first.) Otherwise this wouldn't work.
|
1.164 |
| 29-Jun-2021 |
dholland | Add parsepath for rumpfs in place of using cn_consume.
|
1.163 |
| 29-Jun-2021 |
dholland | - Add a new vnode op: VOP_PARSEPATH. - Move namei_getcomponent to genfs_vnops.c and call it genfs_parsepath. - Add a parsepath entry to every vnode ops table.
VOP_PARSEPATH takes a directory vnode to be searched and a complete following path and chooses how much of that path to consume. To begin with, all parsepath calls are genfs_parsepath, which locates the first '/' as always.
Note that the call doesn't take the whole struct componentname, only the string. The other bits of struct componentname should not be needed and there's no reason to cause potential complications by exposing them.
|
1.162 |
| 16-May-2020 |
christos | branches: 1.162.6; Add ACL support for FFS. From FreeBSD.
|
1.161 |
| 15-May-2020 |
christos | PR/55102: Kamil Rytarowski: Duplicate fifo_vnodeop_entries, fifo_vnodeop_opv_desc symbols.
Many filesystems ffs, lfs, ulfs, chfs, ext2fs etc. use fifofs internally for their fifo vnops. NFS does too, but it also needs networking anyway. Unfortunately fifofs brings in a lot of the networking code so that the rumpkernel is not well partition. In addition the fifo code is rarely used.
The existing hack depended on duplicating the above symbols and adding minimal functionality for the majority of the the tests (except the ffs and the puffs one). In these two cases both symbols were loaded and the symbol sizes clashed which broke the sanitizers. While this can be fixed with weak symbols and other kinds of indirection, it is more straight forward to select between the minimal and the full fifofs implementation by introducing a new shared library librumpvfs_nofifofs.
|
1.160 |
| 15-May-2020 |
christos | Undo previous, need to fix differently (fifofs is needed by other fs's and fifo brings in rumpnet)
|
1.159 |
| 14-May-2020 |
christos | PR/55102: Kamil Rytarowski: Remove fifo stuff duplicated in fifo_vnops.c
|
1.158 |
| 25-Apr-2020 |
bouyer | Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM guests in GENERIC. Xen support can be disabled at runtime with boot -c disable hypervisor
|
1.157 |
| 23-Apr-2020 |
ad | PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)
- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed somewhere. Use it to decide whether to do direct-mapped copy, rather than poking around directly in the vnode in ubc_uiomove(), which is ugly and doesn't work for tmpfs. It would be nicer to contain all this in UVM but the filesystem provides the needed locking here (VV_MAPPED) and to reinvent that would suck more.
- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where appropriate.
|
1.156 |
| 13-Apr-2020 |
ad | Replace most uses of vp->v_usecount with a call to vrefcnt(vp), a function that hides the details and does atomic_load_relaxed(). Signature matches FreeBSD.
|
1.155 |
| 04-Apr-2020 |
kamil | branches: 1.155.2; Avoid copying zero-sized objects (from the NULL address)
Detected with UBSan
|
1.154 |
| 17-Jan-2020 |
ad | VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to allow us to get shared locks (or no lock) on the returned vnode. Matches FreeBSD.
|
1.153 |
| 04-Jun-2018 |
chs | branches: 1.153.2; 1.153.8; initialize the new gop_putrange method pointer in rumpfs_genfsops too.
|
1.152 |
| 20-Nov-2017 |
martin | branches: 1.152.2; When truncating a file make sure to update mtime. This fixes PR kern/51762 for rumpfs.
|
1.151 |
| 20-Nov-2017 |
christos | PR/52738: Martin Husemann: rumpfs does not support mtime
|
1.150 |
| 28-May-2017 |
hannken | branches: 1.150.2; Suspend file system for vgone().
|
1.149 |
| 26-May-2017 |
riastradh | Make VOP_RECLAIM do the last unlock of the vnode.
VOP_RECLAIM naturally has exclusive access to the vnode, so having it locked on entry is not strictly necessary -- but it means if there are any final operations that must be done on the vnode, such as ffs_update, requiring exclusive access to it, we can now kassert that the vnode is locked in those operations.
We can't just have the caller release the last lock because some file systems don't use genfs_lock, and require the vnode to remain valid for VOP_UNLOCK to work, notably unionfs.
|
1.148 |
| 26-Apr-2017 |
riastradh | Change VOP_REMOVE and VOP_RMDIR to preserve lock/ref on dvp.
No change to vp -- the plan is to replace the node by the componentname in the vop parameters, and let all directory vops do lookups internally.
Proposed on tech-kern with no objections: https://mail-index.netbsd.org/tech-kern/2017/04/17/msg021825.html
|
1.147 |
| 17-Apr-2017 |
hannken | Remove unused argument "nextp" from vfs_busy() and vfs_unbusy(). Remove argument "keepref" from vfs_unbusy() and add vfs_ref() where needed.
|
1.146 |
| 11-Apr-2017 |
riastradh | Make VOP_INACTIVE preserve vnode lock on return.
Discussed on tech-kern: https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html
Ride 7.99.68, a bumpy bus of incremental vfs improvements!
|
1.145 |
| 01-Mar-2017 |
hannken | Change the protocol to update a mounted file system from read-write to read-only and vice versa:
- Add an internal flag IMNT_WANTRDONLY. - Set either IMNT_WANTRDWR or IMNT_WANTRDONLY if going from or to read-only. - After successfull call to VFS_MOUNT() set or clear MNT_RDONLY.
Adapt tmpfs and rumpfs to the new protocol. Other file systems will be updated when they get the IMNT_CAN_RWTORO property.
Welcome to 7.99.64
|
1.144 |
| 17-Feb-2017 |
hannken | Add generic genfs_suspendctl() and use it for all file systems. Layered file systems need work.
|
1.143 |
| 27-Jan-2017 |
hannken | Run vflush() when going from read/write to read only. Set link count to zero once a node has been removed. "Implement" MNT_GETARGS.
|
1.142 |
| 20-Aug-2016 |
hannken | branches: 1.142.2; Remove now obsolete operation vcache_remove().
Welcome to 7.99.36
|
1.141 |
| 07-Jul-2016 |
msaitoh | branches: 1.141.2; KNF. Remove extra spaces. No functional change.
|
1.140 |
| 07-Mar-2016 |
christos | Avoid void * arithmetic
|
1.139 |
| 06-Mar-2016 |
christos | PR/50900: David Binderman: optimize memset
|
1.138 |
| 02-Feb-2016 |
pooka | optimize for size a.k.a. operation nuke trailing spaces
|
1.137 |
| 02-Feb-2016 |
pooka | Add capability to attach external memory to files on rumpfs. This feature is useful e.g. for tight-memory systems where you don't need block storage, but still need to provide some data via files.
|
1.136 |
| 26-Jan-2016 |
pooka | Put the kernelside rump kernel headers into <rump-sys> instead of sprinkling them around the faction directories. Avoids having to add a CPPFLAGS (or several) to pretty much every component Makefile.
Leave compat headers around in the old locations.
The commit changes some autogenerated files, but I'll fix the generators shortly and regen.
|
1.135 |
| 23-Jun-2015 |
hannken | VOP_INACTIVE() is a rump operation, not a specfs operation.
|
1.134 |
| 07-Jan-2015 |
riastradh | Name kmem_free(rn, sizeof(*rn)) as freeprivate to match makeprivate.
Per pooka's request from a year or so ago when I passed this patch by him a year or so ago, if I recall correctly.
|
1.133 |
| 07-Jan-2015 |
riastradh | Don't leak rn on vcache_get failure.
|
1.132 |
| 03-Jan-2015 |
hannken | Always use (struct rumpfs_node **) as key to vcache operations.
|
1.131 |
| 01-Jan-2015 |
hannken | Change rumpfs to vcache.
|
1.130 |
| 17-Aug-2014 |
justin | branches: 1.130.2; Fix memory leak on error case, as reported in http://m00nbsd.net/ae123a9bae03f7dde5c6d654412daf5a.html#Report-2
|
1.129 |
| 13-Jun-2014 |
pooka | branches: 1.129.2; Add rump_boot_etfs_register(), which can be used to specify etfs nodes that will be available immediately when mountroot is done and file systems are available.
The intended use is for example for firmware images to be available when config_mountroot() hooks run.
|
1.128 |
| 28-May-2014 |
justin | Add missing __diagused in rump code
|
1.127 |
| 25-Apr-2014 |
pooka | Move the etfs linkage from rumpvfs to rumpkern, and replace the weak alias show with an honest pointer indirection.
No client-visible change. (apart from this version working e.g. on musl w/ dlopen)
|
1.126 |
| 16-Mar-2014 |
njoly | branches: 1.126.2; When trying to extend a file, don't wait until the underlying memory allocation succeed. Return ENOSPC upon failure.
|
1.125 |
| 24-Feb-2014 |
pooka | truncate is not a defined operation for host files
|
1.124 |
| 07-Feb-2014 |
hannken | Change vnode operation lookup to return the resulting vnode *vpp unlocked. Change cache_lookup() to return an unlocked vnode.
Discussed on tech-kern@
Welcome to 6.99.31
|
1.123 |
| 23-Jan-2014 |
hannken | 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.122 |
| 17-Jan-2014 |
hannken | Change vnode operations create, mknod, mkdir and symlink to keep the directory node dvp locked on return.
Discussed on tech-kern@
Welcome to 6.99.29
|
1.121 |
| 23-Nov-2013 |
christos | change the mountlist CIRCLEQ into a TAILQ
|
1.120 |
| 05-Aug-2013 |
pooka | Also check if root vnode is busy when unmounting.
|
1.119 |
| 05-Aug-2013 |
pooka | Only free file data we've allocated.
|
1.118 |
| 04-Aug-2013 |
pooka | Use standard file-is-valid-until-last-reference-is-dropped semantics for file contents.
via Justin Cormack & valgrind on github
|
1.117 |
| 14-Jun-2013 |
pooka | branches: 1.117.2; Allocate large struct from heap instead of stack for the benefit of low-stack environments in which this code can run.
|
1.116 |
| 12-Jun-2013 |
pooka | Make sure root creds override fs mode (at least in a root cred secmodel). The correct way is of course for the access method to perform this:
return kauth_authorize_vnode(cred, KAUTH_ACCESS_ACTION(mode, vp->v_type, attr->va_mode), vp, NULL, genfs_can_access(vp->v_type, attr->va_mode, attr->va_uid, attr->va_gid, mode, cred));
|
1.115 |
| 10-Jun-2013 |
pooka | Create inodes with the specified mode instead of hardcoding to 0755.
|
1.114 |
| 30-Apr-2013 |
pooka | Make hypercall calling conventions consistent: iff a hypercall can fail, it returns an int containing the error value.
|
1.113 |
| 29-Apr-2013 |
pooka | Reduce hypercalls related to reading to essentially an amalgamation of readv and preadv. ditto for writing. Hypercalls are so seldomly used that it doesn't justify 3x the calls for syntactic sugar.
|
1.112 |
| 07-Apr-2013 |
stacktic | Use genfs_null_putpages for fifo putpages op to ensure that the interlock gets unlocked
|
1.111 |
| 14-Sep-2012 |
pooka | Do not assume that O_FOO flags have matching values in the rump kernel and hypervisor.
|
1.110 |
| 30-Mar-2012 |
njoly | branches: 1.110.2; Do not ignore kauth errors when setting file flags.
|
1.109 |
| 22-Mar-2012 |
njoly | Use the appropriates vop_*_args structures.
|
1.108 |
| 15-Mar-2012 |
njoly | Use VOP va_vaflags attribute for genfs_can_chtimes(), not rumpfs node one.
|
1.107 |
| 13-Mar-2012 |
elad | Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with something meaningful. All relevant documentation has been updated or written.
Most of these changes were brought up in the following messages:
http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html
Thanks to christos, manu, njoly, and jmmv for input.
Huge thanks to pgoyette for spinning these changes through some build cycles and ATF.
|
1.106 |
| 31-Jan-2012 |
njoly | Check credentials when setting uid, gid or mode attributes.
|
1.105 |
| 30-Jan-2012 |
njoly | Add permissions support to rump_vop_access(), to be used by rump_vop_lookup().
|
1.104 |
| 12-Dec-2011 |
njoly | Start making fs read(2) fail with EISDIR if the implementation does not allow read on directories (kernfs, rumpfs, ptyfs and sysvbfs). Adjust man page accordingly, and add a small corresponding vfs testcase.
|
1.103 |
| 27-Sep-2011 |
mbalmer | branches: 1.103.2; 1.103.6; Underscores are sometimes overrated.
|
1.102 |
| 27-Sep-2011 |
christos | fix confusion between MAXPATHLEN and MAXNAMLEN
|
1.101 |
| 27-Sep-2011 |
christos | use RUMPFS_MAXNAMLEN consistently.
|
1.100 |
| 27-Sep-2011 |
christos | define RUMPFS_MAXNAMLEN and use it.
|
1.99 |
| 23-Aug-2011 |
hannken | When consuming only part of a path in rump_vop_lookup():
- Make sure to consume complete path components. - Consume trailing slashes too. - Do not clear REQUIREDIR.
Test rump/modautoload/t_modautoload now passes.
|
1.98 |
| 07-Aug-2011 |
hannken | Allow removal of a directory containing only whiteouts and free them first.
|
1.97 |
| 05-Aug-2011 |
hannken | Make whiteouts work on rumpfs:
- On lookup it is ok to create if the name exists and is a whiteout - When replacing a whiteout directory entry remove the whiteout first. - Set UF_OPAQUE when creating a node in place of a whiteout.
|
1.96 |
| 19-Jun-2011 |
rmind | - Fix a silly bug: remove umap from uobj in ubc_release() UBC_UNMAP case. - Use UBC_WANT_UNMAP() consistently.
ARM (PMAP_CACHE_VIVT case) works again.
|
1.95 |
| 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.94 |
| 27-Mar-2011 |
riz | branches: 1.94.2; Don't try to kmem_alloc() 0 bytes. Without this change, some trivial kernel modules were not loadable by rump_server.
|
1.93 |
| 21-Mar-2011 |
pooka | Update copyright statements.
no functional change.
|
1.92 |
| 01-Mar-2011 |
pooka | Reset node's parent pointer when it's removed. Technically the parent still exists, but allows us to avoid complicated g/c algorithms if the parent *is* removed.
|
1.91 |
| 02-Feb-2011 |
pooka | Allow etfs for CREATE lookups too. This takes care of O_CREAT calls to open(), which act just like lookups if the node exists (found from etfs). If the node doesn't exist in etfs, nothing changes from the previous situation.
|
1.90 |
| 02-Feb-2011 |
pooka | adjust inode size too if VOP_SETATTR changes size
|
1.89 |
| 14-Jan-2011 |
pooka | branches: 1.89.2; 1.89.4; Release etfs node's backing vnode before freeing the etfs node.
spotted from the LOCKDEBUG run that martin accidentally did
|
1.88 |
| 13-Jan-2011 |
pooka | Respect DOWHITEOUT when removing a directory.
|
1.87 |
| 13-Jan-2011 |
pooka | support MNT_RDONLY
|
1.86 |
| 12-Jan-2011 |
pooka | unionfs voodoo
|
1.85 |
| 12-Jan-2011 |
pooka | Explicitly set *vpp to NULL in lookup. At least reluckup gets upset if we don't explicitly nullify vpp in the error case.
|
1.84 |
| 12-Jan-2011 |
pooka | reject r/o mount attempts
|
1.83 |
| 12-Jan-2011 |
pooka | Mark rootfs r/w. Thanks to the incredible machine known as vfs, the only one who noticed the inconsistency of writing to a r/o fs was unionfs.
|
1.82 |
| 11-Jan-2011 |
kefren | add advlock to rumpfs, ok pooka@
|
1.81 |
| 04-Jan-2011 |
pooka | Need to check for VNOVAL when setting attrs.
|
1.80 |
| 04-Jan-2011 |
pooka | Don't try to change the size of non-reg nodes or when vattr doesn't contain a new size.
from njoly
|
1.79 |
| 01-Jan-2011 |
pooka | Report correct file size + deal with ftruncate() and O_APPEND.
|
1.78 |
| 18-Dec-2010 |
pooka | Use correct spec_islocked method.
|
1.77 |
| 30-Nov-2010 |
pooka | simplify
|
1.76 |
| 30-Nov-2010 |
dholland | SAVENAME and HASBUF namei flags have been removed; update rumpvfs accordingly.
|
1.75 |
| 30-Nov-2010 |
dholland | Fix etfs pathname handling to not (mis)use namei's scratch space.
etfs objects must now be registered as absolute paths; however, it is now possible to access them via relative paths and through symlinks, which previously worked some times and not others depending on exactly what namei was doing.
discussed on tech-kern and ok'd by pooka.
|
1.74 |
| 22-Nov-2010 |
pooka | Support VOP_SETATTR, otherwise e.g. open(O_TRUNC) fails.
|
1.73 |
| 11-Nov-2010 |
pooka | help me if you can i'm gcc and i do appreciate work'round-eee'e help me, get my head out of the ground won't you please, please help me?
|
1.72 |
| 11-Nov-2010 |
pooka | +VOP_REMOVE
|
1.71 |
| 11-Nov-2010 |
pooka | support read/write & ubc
|
1.70 |
| 11-Nov-2010 |
pooka | support vop_pathconf
|
1.69 |
| 11-Nov-2010 |
pooka | support vfs_mount/unmount
|
1.68 |
| 11-Nov-2010 |
pooka | be friends with genfs
|
1.67 |
| 11-Nov-2010 |
pooka | Support non-hostbacked regular files, at least just a little bit.
|
1.66 |
| 08-Nov-2010 |
pooka | print some dmesg blub for etfs files attaching as block devices
|
1.65 |
| 06-Sep-2010 |
pooka | renamelock is mandatory
|
1.64 |
| 06-Sep-2010 |
pooka | Try to draw faster than Lucky Locke.
|
1.63 |
| 21-Jul-2010 |
hannken | Make holding v_interlock mandatory for callers of vget().
Announced some time ago on tech-kern.
|
1.62 |
| 13-Jul-2010 |
pooka | support dotdot lookups
|
1.61 |
| 09-Jul-2010 |
hannken | Replace vget() with vref()/vn_lock(), this node already has a reference.
|
1.60 |
| 03-Jul-2010 |
pooka | Support VOP_WHITEOUT (mostly so that unionfs tests don't always need to first mount ffs)
|
1.59 |
| 30-Jun-2010 |
pooka | plug memory leaks (of course the function i copypasted for the previous commit was the only one with the leak ...)
|
1.58 |
| 30-Jun-2010 |
pooka | Implement VOP_SYMLINK/READLINK. The allows me to be a little lazier in other places.
|
1.57 |
| 24-Jun-2010 |
hannken | Clean up vnode lock operations pass 2:
VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.
Welcome to 5.99.32.
Discussed on tech-kern.
|
1.56 |
| 22-Jun-2010 |
pooka | Remove overeager checks.
|
1.55 |
| 16-Jun-2010 |
pooka | * support VOP_SEEK * correctly handle VOP_OPEN(FREAD|FWRITE) * fix host file write offset
|
1.54 |
| 16-Jun-2010 |
pooka | report actual size from read/write vops
|
1.53 |
| 15-Jun-2010 |
pooka | Implement rumpblk_deregister, for unregistering fake block devices (from etfs_deregister). Prompted by use case from njoly.
|
1.52 |
| 15-Jun-2010 |
njoly | Fix some rump_etfs_register/rump_etfs_remove memory leaks.
|
1.51 |
| 14-Jun-2010 |
njoly | Add rmdir(2) support for rump filsystem.
With help from pooka.
|
1.50 |
| 11-May-2010 |
pooka | Cache directory entry name length. This brings kernel bootstrap time down: 14ms -> 12ms. Further hashing etc. did not seem to have any noticable effect. (without /dev node creation bootstrap time is 8ms, so it's still the bottleneck)
|
1.49 |
| 11-May-2010 |
pooka | Fix reclaim locking so that we don't attempt lock reentry if making a new rumpfs vnode triggers a reclaim for a rumpfs vnode.
|
1.48 |
| 11-May-2010 |
pooka | Reclaim spec-type vnodes properly.
|
1.47 |
| 30-Apr-2010 |
pooka | genfs_eopnotsuppify symlink, otherwise unlocky things happen!
|
1.46 |
| 30-Apr-2010 |
pooka | Add translation from vtype to dirent type. Convert rumpfs now. I'll convert the rest of the file servers in need after the next version bump to avoid the coding module crisis.
|
1.45 |
| 30-Apr-2010 |
pooka | Get better results if initialize a field before calling strlen(). (can't believe that worked last night. the stars must've been in the "lottery, stupid" position)
|
1.44 |
| 29-Apr-2010 |
pooka | p2k asserts get upset if VOP_ISLOCKED() doesn't reflect lock status. So let genfs do its thing.
|
1.43 |
| 29-Apr-2010 |
pooka | add simple VOP_READDIR for rumpfs
|
1.42 |
| 27-Apr-2010 |
pooka | Fix off-by-atleast-1 error.
Note: etfs doesn't work if rumpfs is not mounted as root. Given that rumpfs_mount always return EOPNOTSUPP (except for mountroot), this is not a pressible tragedy currently, but nevertheless could/should be fixed in the future.
|
1.41 |
| 26-Apr-2010 |
pooka | Add directory support to etfs: host directories and their contents will be mapped to rumpfs based on the given key. The directory can be mapped either for a single level or recursively down the entire subtree.
|
1.40 |
| 21-Apr-2010 |
pooka | rumpfs is mpsafe (has always been), so mark it as such.
|
1.39 |
| 14-Apr-2010 |
pooka | Use reserved major for rumpblk instead of picking something which may conflict.
|
1.38 |
| 12-Apr-2010 |
pooka | Report f_iosize as 512. Some callers want it, and we can only guess a safe default here (because of etfs).
|
1.37 |
| 01-Mar-2010 |
pooka | branches: 1.37.2; "support" unmount of rumpfs
|
1.36 |
| 03-Dec-2009 |
pooka | branches: 1.36.2; Make sure node lengths match in addition to strncmp(). (I thought i fixed this already once?)
|
1.35 |
| 03-Dec-2009 |
pooka | Decide it's not worth the fuss to have rumpfs as a module and just hardcode attach into rump_vfs_init(). Saves us from a lot of pingpong init bouncing from one component to another to get the order right.
|
1.34 |
| 30-Nov-2009 |
pooka | test for error in creating root vnode before using it
|
1.33 |
| 30-Nov-2009 |
pooka | Use genfs_statvfs() for now.
|
1.32 |
| 30-Nov-2009 |
pooka | support lookup of pathname component "."
|
1.31 |
| 27-Nov-2009 |
pooka | Move rootfs-related init from init_main() to vfs_mountroot(). Reduces code re-written in rump.
|
1.30 |
| 26-Nov-2009 |
pooka | For rumpfs, do mountroot instead of the bunch of homegrown hacks currently there. Still needs a little massage to get the kernel interfaces right and avoid copypaste especially from main().
Also, move it a bit more into the direction of a real file system (finally!) by giving it a vfsops. Most ops are still unimplemented, though.
|
1.29 |
| 14-Oct-2009 |
pooka | "rumppriv" goes back to "rump" per internal interface naming change.
|
1.28 |
| 14-Oct-2009 |
pooka | Adjust rump sources for external/internal interfaces. No functional change.
|
1.27 |
| 11-Oct-2009 |
pooka | Include host offset in regular etfs read/write operations (I can't imagine it being particularly useful, but let's call file this under POLA).
|
1.26 |
| 11-Oct-2009 |
pooka | Support creating file system sockets (non-sockets not supported in VOP_CREATE since I don't want to have to write read/write support for non-etfs files).
|
1.25 |
| 07-Oct-2009 |
pooka | Allow to set size and host file offset for etfs files and rumpblk.
|
1.24 |
| 04-Oct-2009 |
pooka | Implement RUMP_ETFS_REG. Usable e.g. by firmload(9). (well, it should probably be RUMP_ETFS_PATH, but simple things first)
|
1.23 |
| 05-Sep-2009 |
pooka | zalloc new rumpfs nodes to make sure rn_vp is initially NULL. Fixes problem pointed out by Nicolas Joly in private email.
|
1.22 |
| 04-Aug-2009 |
pooka | Do std vnode locking for specnodes located on rumpfs.
|
1.21 |
| 03-Aug-2009 |
pooka | * get rid of the old fakeblk registration interface. Instead, introduce a new and improved "etfs" interface, which can be used to register host files accessible from rump fs namespace. This new interface is not restriced to block devices, and neither does it require the same pathname in host namespace and rump namespace. Therefore, the same host file can be represented both as a char and block device in rump namespace.
* adjust rumpblk to make the above possible
* improve rumpfs: nodes are now created properly and not implicitly tied to the vnode lifecycle
|
1.20 |
| 22-Jul-2009 |
pooka | Since rumpfs can now be used from publically exported routines, convert unsupported checking KASSERTs to return EOPNOTSUPP.
|
1.19 |
| 10-Jun-2009 |
pooka | Support VOP_MKNOD. This is so that components which need device nodes (e.g. raidframe) can create them.
|
1.18 |
| 09-Jun-2009 |
pooka | Put some spunk into deadfs.
|
1.17 |
| 19-May-2009 |
pooka | Set vnode op vector properly for block devices too. Makes mounting a real block device work again.
|
1.16 |
| 03-May-2009 |
pooka | branches: 1.16.2; set MNT_ROOTFS for the rootfs (the kernel, a logical piece of work)
|
1.15 |
| 01-May-2009 |
pooka | fix editing artifact
|
1.14 |
| 29-Apr-2009 |
pooka | Add enough support to be able to create directories and perform lookups through them. This has two implications:
1) mountpoints can be created directly onto the rump rootfs. this is benefitial in test programs where we want the same program to be easily switched between testing against rump and testing against the host kernel. 2) fakeblk must be used (it used to work implicitly) to register block devices that should be used from the host fs namespace.
|
1.13 |
| 18-Apr-2009 |
pooka | null putpages has to unlock interlock instead of just returning success
|
1.12 |
| 16-Apr-2009 |
pooka | Allocate vnodes properly with getnewvnode() and support reclaim.
|
1.11 |
| 07-Apr-2009 |
pooka | Make it possible to use VCHR devices again.
|
1.10 |
| 20-Mar-2009 |
pooka | need atomic.h
|
1.9 |
| 19-Mar-2009 |
pooka | Make it possible to mount a file system through the mount() system call in addition to the old rump_mnt_mount(). Some issues remain (but require more deeprooted changes): * it is possible to mount only to / * unmount needs MNT_FORCE due to the new fs being root and having a bonus reference * cwdi is not set (since there is no concept of a process)
|
1.8 |
| 18-Mar-2009 |
cegger | Ansify function definitions w/o arguments. Generated with sed.
|
1.7 |
| 26-Feb-2009 |
pooka | Make rumpuser stat and nanosleep independent of the host system stat and timespec definitions.
|
1.6 |
| 13-Jan-2009 |
pooka | branches: 1.6.2; 1.6.4; 1.6.6; Implement block I/O as a real block driver instead of a hacked copy of specfs. That was easier years ago when rump didn't support devices, but brings no gain now. This allows us to include the real specfs in rump.
|
1.5 |
| 29-Dec-2008 |
pooka | Register a dummy block device for rump, since some file systems do a sanity check to see if the block device exists. This dummy block device should eventually replace rump specfs.
|
1.4 |
| 29-Dec-2008 |
pooka | sprinkle static
|
1.3 |
| 18-Dec-2008 |
pooka | __KERNEL_RCSID
|
1.2 |
| 27-Nov-2008 |
pooka | * hang all mountpoints from rootvnode in our virtual mount hierarchy * set VV_ROOT for the rootvnode to make getcwd realize it has met its journey's end
|
1.1 |
| 19-Nov-2008 |
pooka | Split vfs out of rumpkern into rumpvfs. Non-fs rumps no longer include the file system code. File system rumps explicitly need to include rumpvfs from now on.
|
1.6.6.2 |
| 23-Jul-2009 |
jym | Sync with HEAD.
|
1.6.6.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.6.4.4 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.6.4.3 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
1.6.4.2 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.6.4.1 |
| 13-Jan-2009 |
skrll | file rumpfs.c was added on branch nick-hppapmap on 2009-01-19 13:20:27 +0000
|
1.6.2.2 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.6.2.1 |
| 13-Jan-2009 |
mjf | file rumpfs.c was added on branch mjf-devfs2 on 2009-01-17 13:29:38 +0000
|
1.16.2.8 |
| 09-Oct-2010 |
yamt | sync with head
|
1.16.2.7 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.16.2.6 |
| 11-Mar-2010 |
yamt | sync with head
|
1.16.2.5 |
| 16-Sep-2009 |
yamt | sync with head
|
1.16.2.4 |
| 19-Aug-2009 |
yamt | sync with head.
|
1.16.2.3 |
| 20-Jun-2009 |
yamt | sync with head
|
1.16.2.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.16.2.1 |
| 03-May-2009 |
yamt | file rumpfs.c was added on branch yamt-nfs-mp on 2009-05-04 08:14:31 +0000
|
1.36.2.3 |
| 22-Oct-2010 |
uebayasi | Sync with HEAD (-D20101022).
|
1.36.2.2 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.36.2.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.37.2.7 |
| 12-Jun-2011 |
rmind | Sync RUMP's rump_etfs_remove() and uvm_aio_aiodone() with branch changes.
|
1.37.2.6 |
| 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.37.2.5 |
| 21-Apr-2011 |
rmind | sync with head
|
1.37.2.4 |
| 05-Mar-2011 |
rmind | sync with head
|
1.37.2.3 |
| 03-Jul-2010 |
rmind | sync with head
|
1.37.2.2 |
| 30-May-2010 |
rmind | sync with head
|
1.37.2.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.89.4.2 |
| 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.89.4.1 |
| 08-Feb-2011 |
bouyer | Sync with HEAD
|
1.89.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.94.2.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.103.6.2 |
| 05-Apr-2012 |
mrg | sync to latest -current.
|
1.103.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.103.2.3 |
| 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.103.2.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.103.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.110.2.4 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.110.2.3 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.110.2.2 |
| 23-Jun-2013 |
tls | resync from head
|
1.110.2.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.117.2.2 |
| 18-May-2014 |
rmind | sync with head
|
1.117.2.1 |
| 28-Aug-2013 |
rmind | sync with head
|
1.126.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.129.2.1 |
| 24-Aug-2014 |
martin | Pull up following revision(s) (requested by maxv in ticket #51): sys/netinet6/ip6_output.c: revision 1.158 sys/rump/librump/rumpvfs/rumpfs.c: revision 1.130 Fix memory leaks in error cases
|
1.130.2.6 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.130.2.5 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.130.2.4 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.130.2.3 |
| 19-Mar-2016 |
skrll | Sync with HEAD
|
1.130.2.2 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.130.2.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.141.2.2 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.141.2.1 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.142.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.150.2.1 |
| 26-Feb-2018 |
snj | Pull up following revision(s) (requested by maya in ticket #581): sys/rump/librump/rumpvfs/rumpfs.c: 1.151-1.152 PR/52738: Martin Husemann: rumpfs does not support mtime -- When truncating a file make sure to update mtime. This fixes PR kern/51762 for rumpfs.
|
1.152.2.1 |
| 25-Jun-2018 |
pgoyette | Sync with HEAD
|
1.153.8.1 |
| 17-Jan-2020 |
ad | Sync with head.
|
1.153.2.2 |
| 21-Apr-2020 |
martin | Sync with HEAD
|
1.153.2.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.155.2.2 |
| 25-Apr-2020 |
bouyer | Sync with bouyer-xenpvh-base2 (HEAD)
|
1.155.2.1 |
| 20-Apr-2020 |
bouyer | Sync with HEAD
|
1.162.6.1 |
| 01-Aug-2021 |
thorpej | Sync with HEAD.
|