Commit Graph

518 Commits

Author SHA1 Message Date
wrstuden 636995172d Make message about not loking a vnode in nullfs_create a little quieter -
now only enabled if NULLFS_DIAGNOSTIC and no longer if DEBUG or DIAGNOSTIC.
1999-04-09 17:27:38 +00:00
bouyer e045fbf363 We must handle MNT_NODEV at open time, so add an open op for null and union,
and do proper checks in union_open(). Fix to nullfs from OpenBSD, extended
to umap and union by me.
1999-03-25 13:05:41 +00:00
sommerfe ef07055d58 Disallow tracing of processes unless tracer's root directory is at or
above tracee's root directory.
1999-03-25 04:45:56 +00:00
sommerfe b6c36d0fe4 fix union node lock to sleep on something it'll be woken on.. 1999-03-24 05:53:59 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
sommerfe 36dc99adac vinvalbuf, called from vclean, could cause a locking-against-self
deadlock in VOP_FSYNC() if the unreferenced vnode picked for
reclamation happened to be stacked on top of a vnode the process
already had locked.  This could happen if the same filesystem was
accessed both through a union mount and directly; it seemed to happen
most frequently when the direct access was through NFS.

Avoid this deadlock by changing vinvalbuf to pass a new FSYNC_RECLAIM
flag bit to VOP_FSYNC() to indicate that a reclaim is in progress and
only a `shallow' fsync is necessary.

Do nothing in *_fsync() in umapfs, nullfs, and unionfs when
FSYNC_RECLAIM is set; the underlying vnodes will shortly be released
in *_reclaim and may be reclaimed (and fsync'ed) later.
1999-03-22 17:24:19 +00:00
perseant 247156f4d2 Apply patch from kern/5538:
Fix group mapping so members of group 0 get other group-ids mapped as well.
Avoid rename panic by checking (*this_vp_p) against NULLVP before
dereferencing it (same change as to NULLFS some time ago).
1999-03-19 21:46:25 +00:00
thorpej 195403fe38 malloc the arg temporary buffer, rather than declaring it as an automatic
array of ARG_MAX size.  ARG_MAX is currently 256k, which causes a rather
serious stack overflow (kernel stacks are not very large, usually 8k).

Fixes memory corruption problems observed after accessig /proc/1/cmdline
during tests.  Problem in my case manifested itself as massive lossage
in ffs_sync(), resulting in a crash, and sometimes, pooched file systems.

XXX This could, and probably should, be rewritten to use a much smaller
temporary buffer, and a loop around uiomove().
1999-03-13 22:26:48 +00:00
thorpej 4865d6ff88 Some changes to `cmdline' to make it work properly:
- Don't error out on P_SYSTEM or SZOMB processes; instead, do what ps(1)
  would do, i.e. the p_comm in parenthesis.
- Use uvm_io() (or procfs_rwmem() if !UVM) to read the target process's
  psstrings and argument vector.  Using copyin() is problematic, because
  it operates on the current processes!  That is, the old code would
  always get the `cmdline' of the process reading the file, not that of
  the target process.
1999-03-13 01:01:30 +00:00
thorpej 5e7b128211 Expose procfs_rwmem(). (This function will go away entirely when we
delete Mach VM.)
1999-03-13 00:57:13 +00:00
christos 8aa2fc5ab8 PR/7143: Jaromir Docelek: Add procfs/cmdline from Linux emulation 1999-03-12 18:45:40 +00:00
bouyer 0a2d2af9e0 Restrict umap mounts to root. Letting any user use this has security
implications.
1999-03-12 18:16:44 +00:00
mycroft b174019ccc Pass null pointers to VOP_UPDATE rather than having all the callers fetch the
current time themselves.
1999-03-05 21:09:48 +00:00
wrstuden 862a56e88b Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now
only handles the file handle to vnode conversion, and a new call,
vfs_checkexp(), performs the export verification.
1999-02-26 23:44:43 +00:00
wrstuden 0078fc50dc Modify VOP_CLOSE vnode op to always take a locked vnode. Change vn_close
to pass down a locked node. Modify union_copyup() to call VOP_CLOSE
locked nodes.

Also fix a bug in union_copyup() where a lock on the lower vnode would
only be released if VOP_OPEN didn't fail.
1999-02-26 23:38:55 +00:00
is fde637530e Machine independent part of fix for PR 6152 (gdb doesn't work on machines
with UVM and seperate I&D-Cache). Mostly by Michael Hitch, but pass struct
proc * instead of the pmap. Reason: said machine will need a method to do
the syncing operation for "curproc", too; this way more code can be shared.
1999-02-25 21:54:53 +00:00
msaitoh 1f5b9b4d63 sprintf->snprintf 1999-02-03 05:05:03 +00:00
drochner 7847c0f52e make it compile with !UVM 1999-01-28 21:18:00 +00:00
msaitoh ea669760d6 Add /proc/#/map. From FreeBSD. 1999-01-25 02:20:08 +00:00
wrstuden c7fc6c74ca Oops. That extra "*" doesn't need to be there. 1999-01-15 22:04:44 +00:00
wrstuden 872d72e705 In nullfs_mount, we need to check if error before VOP_UNLOCK(vp,0) as
vp is initialized iff error==0 in null_node_create.
1999-01-13 01:51:37 +00:00
matt 32a315ff7c Use the so_send and so_receive funcptrs in the socket instead of calling
sosend/soreceive directly.  [I've been meaning to commit these for months.]
1998-10-31 01:18:41 +00:00
ross e1b25b7bd6 Make spec_write() process errors and return them, otherwise we don't even
notice things like hitting the end of a partition or device.  (To be sure,
writes to block special files are rare, but as long as we support them...)
1998-10-02 00:21:39 +00:00
jonathan fcf7a78c02 Workaropund fix for PR #5239 from <minoura@kw.netlaputa.ne.jp>:
stop  null_node_create() from locking the nullfs mountpoint  multiple
  times. Avoids a guaranteed, repeatably "locking against myself" panic
  during mount of a nullfs filesystem.  nullfs filesystems are still as
  buggy as ever (e.g., see PR# 4907) but this you at least mount them.
1998-09-30 06:50:10 +00:00
thorpej 970e60efb8 - Use proclists[], rather than checking allproc and zombproc explicitly.
- Add some comments about locking.
1998-09-08 23:50:13 +00:00
thorpej 7cc905f5c8 Add some braces to make egcs happy (ambiguous else warning). 1998-08-18 06:27:01 +00:00
kleink 5350df2953 Per POSIX, fail with EINVAL if advisory locking is attempted on a file type
that doesn't support it, rather than using a homegrown EBADF or EOPNOTSUPP.
1998-08-13 10:06:31 +00:00
kleink bf1863d17b Add genfs_einval(), which does the obvious thing. 1998-08-13 09:59:52 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
matthias 574106c52b create miscfs/genfs/genfs_vnops.c:genfs_enoioctl and make all the other
filesystems use it instead of a private version.
1998-08-10 08:11:10 +00:00
perry 4522c799a1 bzero->memset, bcopy->memcpy, bcmp->memcmp 1998-08-09 20:51:08 +00:00
kleink 12a866151b Recognize _PC_SYNC_IO. 1998-08-03 14:19:57 +00:00
lukem 786b86d71b use AF_LOCAL instead of AF_UNIX 1998-07-18 05:04:35 +00:00
jonathan d275e56dee * defopt COMPAT_{09,10,11,12,13} and COMPAT_NOMID.
TODO: revisit interaction between native compat and emul compat usage.
1998-07-05 08:49:30 +00:00
thorpej 961f0708b1 - Rename nqnfs_vop_lease_check() to genfs_lease_check(). If NFSSERVER is
not in the kernel, genfs_lease_check() is simply a no-op.  This allows
  LKM'd file systems to be exported (previously did not work properly
  due to a compile-time decision based on -DNFSSERVER).
- defopt NFSSERVER
1998-06-25 22:15:28 +00:00
sommerfe 7ba7fbbb23 Always include fifos; "not an option any more". 1998-06-24 20:58:44 +00:00
sommerfe becaafeea0 defopt for options FIFO 1998-06-22 22:00:59 +00:00
cgd 651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
kleink 382743ada3 Convert fsync vnode operator implementations and usage from the old `waitfor'
argument and MNT_WAIT/MNT_NOWAIT to `flags' and FSYNC_WAIT.
1998-06-05 19:53:00 +00:00
kleink a32a338757 * Convert fsync vnode operator implementations and usage from the old
waitfor argument and MNT_WAIT/MNT_NOWAIT to flags and FSYNC_WAIT.
* In genfs_fsync(), honor the FSYNC_NODATA flag.
1998-06-05 19:52:59 +00:00
fvdl 8ccdc78ffc Since the interlock has been unlocked, also clear LK_INTERLOCK from
a_flags in order to not confuse the layer that is called through
the following VCALL.
1998-05-18 16:47:37 +00:00
pk 097731676e dead_lock() must unlock `v_interlock'. 1998-05-18 14:36:46 +00:00
fvdl 811dba68c1 procfs_readdir: in case of error, check if cookies actually have
been allocated before freeing them. From Wolfgang Solfrank.
1998-04-21 16:36:37 +00:00
veego dd9d3a3015 Fix an error introduced in rev 1.39 where jason fixed kern/5271:
s/vp/ap->a_vp/ in line 715.
1998-04-11 08:51:12 +00:00
thorpej 13eebaf27e Fix two problems in union_link():
(1) Fix a typo that caused a NULL pointer deref.
(2) union_copyup() locks the vnode, so unlock it before calling relookup().
PR #5272, MINOURA, Makoto <minoura@kw.netlaputa.ne.jp>.
1998-04-10 01:43:54 +00:00
thorpej 181995d5f7 Fix possible stray pointer deref in union_access, per PR #5271,
submitted by MINOURA, Makoto <minoura@kw.netlaputa.ne.jp>.
1998-04-10 01:39:45 +00:00
marc efbd14c45d mounting a union causes VOP_WHITEOUT to be called on the upper root
vn, with a 0 component.  If the upper fs was a unionfs,
union_whiteout() would deref compnent to get a struct proc, and panic.
struct proc was only being passed to FIXUP, which never used it.  It
turns out this happened a lot.  I ripped most of the unneeded code
out, and left in the few places that really did need the proc handle.
1998-03-17 08:36:57 +00:00
fvdl f75b1046d4 Fix flags mess-up in vget. LK_EXCLUSIVE -> 0 (even indicated in the
comment, d'oh!)
1998-03-11 15:52:02 +00:00
mrg c6dd5cbefd standardise options header includes. 1998-03-08 14:04:14 +00:00
fvdl 7ba6a2daac Remove extraneous files from Lite2 merge. 1998-03-01 13:45:28 +00:00
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
fvdl e8d05f0741 Import 4.4BSD-Lite2 1998-03-01 02:12:49 +00:00
thorpej 62cb255d14 Place a pointer to an array of our vnodeopv_desc *'s in our vfsops
structure, for use by vfs_attach().
1998-02-18 07:26:57 +00:00
thorpej b5bf2ed6d0 Place a pointer to an array of our vnodeopv_desc *'s in our vfsops
structure, for use by vfs_attach().
1998-02-18 07:05:47 +00:00
thorpej d2924ae854 Prevent the session ID from disappearing if the session leader exits
(thus causing s_leader to become NULL) by storing the session ID separately
in the session structure.  Export the session ID to userspace in the
eproc structure.

Submitted by Tom Proett <proett@nas.nasa.gov>.
1998-02-14 00:37:26 +00:00
thorpej 44ed0e5b79 Don't include option headers if building an LKM. 1998-02-12 20:38:45 +00:00
mrg d90485202c - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
chs f64abc7b4c add flags arg to hashinit(), to pass to malloc(). 1998-02-07 02:44:44 +00:00
mrg 1a8c7604f4 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the rest of the MI portion changes.

this will be KNF'd shortly.  :-)
1998-02-05 07:59:28 +00:00
perry 1a80fd799d RCSID Police. 1998-01-05 19:19:41 +00:00
fvdl 766487d941 Too many vnode ops were marked as bad op, but could happen in practice.
Change them to genfs_eopnotsupp.
1997-11-27 20:36:05 +00:00
mycroft d24c4d31e1 Make the curproc link executable. 1997-10-30 09:14:07 +00:00
christos 4071635fa6 Add missing cast to dev_t 1997-10-16 23:57:51 +00:00
fvdl ce56587f15 Bump last argument to VOP_READDIR to off_t (from u_long). 1997-10-10 02:01:05 +00:00
fvdl ebffddb531 Bump last argument to VOP_READDIR to off_t (from u_long). 1997-10-10 02:01:02 +00:00
fvdl ab940dcf06 Bump last argument to VOP_READDIR to off_t (from u_long). 1997-10-10 02:00:56 +00:00
mycroft 4383ea0b92 Make openstr[] const. 1997-10-09 13:12:01 +00:00
mycroft 64d080efe0 Make various standard wmesg strings const. 1997-10-09 12:59:50 +00:00
thorpej c9efd0562e Make the vfs ops and vnodeop_opv symbols match the name of the
file-system option used to configure the file system into the kernel.
1997-10-06 09:32:31 +00:00
leo e0f973ee3b Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
1997-09-19 19:14:20 +00:00
enami b4ae3706db Use the same indentation as other two place, sys_ptrace() and
procfs_control().

Ok'ed by Jason R. Thorpe.
1997-09-13 04:25:35 +00:00
christos 4fb8bf7262 PR/4098: Alan Barrett: Fix diagnostic printf formatting. 1997-09-10 13:44:20 +00:00
thorpej a79a3ca472 Fix a reversed argument which caused procfs_checkioperm() to always return
"OK".  Add a few comments to avoid further confusion.
1997-08-27 08:52:51 +00:00
explorer 945beb8d63 Move procfs_checkioperm() from procvs_subr.c to procfs_mem.c, since _subr is
not included in a kernel without procfs, and it seems wrong to pull
all of procfs_subr.c in for just that one function.  Perhaps this
should go into a new file instead?
1997-08-13 04:01:22 +00:00
thorpej f9777e4a1c Fix the procfs hole described on current-users, similar to a fix for
FreeBSD by Sean Eric Fagan, but a bit different.  This makes the checks
in the same places as sef's FreeBSD patch, but does not hardcode the
"kmem" group into the kernel, and also does a check identical to the
(3) and (4) checks in the NetBSD ptrace(2):

	(1) it's not owned by you, or is set-id on exec (unless
	    you're root), or

	(2) it's init, which controls the security level of the
	    entire system, and the system was not compiled with
	    permanently insecure mode turned on.
1997-08-12 22:47:18 +00:00
drochner aa015962db Since there is a "%qx" printf format, don't truncate to long for
debug output.
1997-07-04 19:22:48 +00:00
mycroft 2ee8bc2b79 Don't allow writes to init's memory or registers while in secure mode. 1997-06-25 11:32:15 +00:00
thorpej a149ed59e4 Eliminate use of dtom() in the handing of UNIX domain sockets. Add an
"unp_addrlen" member to the unpcb, and use it when copying the socket
name.  This eliminates that last uses of dtom() in the system.
1997-06-24 19:12:53 +00:00
kleink a1c6b08386 When reading from an empty FIFO no process has opened for writing, and
O_NONBLOCK is set, return 0.
1997-05-18 12:19:29 +00:00
pk 80bb266e0e NULL => 0 (Arne Juul; PR#3629) 1997-05-17 20:31:15 +00:00
pk 420dea1e9a Move `struct kern_target' definition into kernfs.h 1997-05-10 22:04:13 +00:00
mycroft 3be66b88fe Update for lookup() changes. 1997-05-09 04:05:01 +00:00
mycroft e3f99a9397 Pass the vnode type to vaccess(), and use it when checking VEXEC. Make sure
that the mode bits passed to vaccess() and returned by foo_getattr() contain
only permission bits.
1997-05-08 16:19:43 +00:00
mycroft 4d213ec5e7 Need stat.h. 1997-05-05 07:34:09 +00:00
mycroft 0f09f99ae1 Need stat.h. 1997-05-05 07:19:05 +00:00
mycroft 1e3c14a909 Eliminate bogus uses of V{READ,WRITE,EXEC}. Use S_I[RWX]{USR,GRP,OTH} where
appropriate.
1997-05-05 07:13:57 +00:00
mycroft 701f15db33 Reinstate P_FSTRACE, with different semantics:
* Never send a SIGCHLD to the parent if P_FSTRACE is set.
* Do not permit mixing ptrace(2) and procfs; only permit using the one that
  was attached.
1997-04-28 04:49:27 +00:00
mycroft 8a33a13c65 Minor code cleanup. 1997-04-28 03:49:57 +00:00
mycroft 217c4e14ea Fix several deficiencies, as compared to ptrace(2):
* Did not check for P_SUGID on ATTACH.
* Did not check for tracing of init on ATTACH.
* Did not turn off single-step mode on RUN or DETACH.
* Might have screwed up reparenting in some cases.
* Allowed anyone to detach the process.
1997-04-28 02:28:39 +00:00
fvdl aadf9a1d0f fdesc_seek -> genfs_seek, not genfs_badop 1997-04-16 22:43:41 +00:00
kleink 9c16cd8a46 Implement a POSIX compliant genfs VOP_SEEK() and use it in the appropriate
places; by Chris G. Demetriou and myself.
1997-04-11 21:52:00 +00:00
cgd 89a4d9a733 don't try to use __builtin_return_address() on the Alpha. (It's never
worked as far as I can tell, and apparently crashes the kernel when
invoked here.)  From Ross Harvey, PR#3471.
1997-04-10 05:35:08 +00:00
kleink 8c04785710 Remove superfluous (uio_resid == 0) check. 1997-04-02 17:14:32 +00:00
kleink c1779f82c3 added advisory record locking support 1997-04-02 17:09:47 +00:00
mikel bd1ca0f680 this is umapfs, not lofs 1997-03-11 03:55:04 +00:00
mikel 812eb1fae4 this is nullfs, not lofs 1997-03-11 03:54:29 +00:00
mikel be4f5a32c1 use the proper entry count; from Yasufumi Itoh in PR kern/3175. 1997-02-20 05:04:05 +00:00
cgd 90688fce27 Change the second and third args to struct vfsops' (*vfs_mount)() to
'const char *', and 'void *', respectively.  The second arg is taken directly
from user arguments, and is const there, so must be const in the prototypes
and functions.  The third arg is also taken directly from user arguments.
It doesn't have to be changed, but since it's cleaner to keep the type
the same as the user arg's type, and I'm already making the 'const char *'
change...
1996-12-22 10:10:12 +00:00
pk 3127b0c5e2 Fix short malloc & memory leak in union_relookup() (per Naofumi Honda; PR#3000). 1996-12-07 11:02:47 +00:00
cgd a67c0b16b8 define path name string variables that we should not (and, thankfully, do
not) modify as 'const char *' rather 'char *'.
1996-10-25 21:57:58 +00:00
cgd eaa37ec87a remove bogus cast of second arg to bcmp(). (nm_name is a const char*,
and was being unnecessarily cast to 'char *'; -Wcast-qual.)
1996-10-25 21:52:02 +00:00
christos 92a808f167 backout previous kprintf changes 1996-10-13 02:21:25 +00:00
christos 60d201973e printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:46:11 +00:00
mycroft 605403ce1e portal_fsync -> genfs_nullop 1996-09-25 03:01:41 +00:00
mycroft 2bc736661a Implement poll(2). 1996-09-07 12:40:22 +00:00
thorpej 2c02b8ec56 Remove some unused variables. 1996-09-05 09:26:14 +00:00
mycroft c52352c819 Add a set of generic file system operations that most file systems use.
Also, fix some time stamp bogosities.
1996-09-01 23:47:48 +00:00
mrg 2a0f025a41 use VATTR_NULL macro. 1996-06-14 09:27:23 +00:00
mycroft 95f26583aa Add a missing PHOLD()/PRELE() pair. 1996-06-11 01:49:38 +00:00
cgd f7f3f4299d print pointers with %p, rather than by printing with %x and casting to
(unsigned int).
1996-05-23 23:34:14 +00:00
mycroft ea64155398 Mirror changes in uipc_usrreq.c. 1996-05-23 18:45:14 +00:00
gwr 316f45753f Allow the DIAGNOSTIC to compile with old versions of gcc. 1996-05-17 20:53:11 +00:00
mrg d0f2ced7d2 use %p not %x for pointers 1996-05-13 07:13:23 +00:00
jtk 6ddae4d140 Implement proper `..' locking in lookup code to avoid many potential
deadlocks.

copy up properly when adding a link to lower-layer only file.
(I believe there are still more deadlocks remaining.)
1996-05-10 22:57:49 +00:00
jtk c9c8daaf7c Add locking code to avoid deadlocks on vnode reclaim, which means the
addition of null_lookup, null_lock, null_unlock, null_islocked.
1996-05-10 22:50:45 +00:00
christos 4ef330b934 remove include of <sys/cpu.h> 1996-04-22 01:38:12 +00:00
cgd 7e4d04910d fix screw-up in the prototyping changes: print pointers with %p, NOT
by casting them to (unsigned int) then printing with %x.
1996-04-13 01:34:06 +00:00
mrg 2a0a8867ae fix long-time bug in fdesc -- /dev/tty was a named pipe rather than a
mirror image of the real /dev/tty, a char dev.  make it a char dev.
1996-04-11 11:24:29 +00:00
christos da749d6e09 Fix printf format follies. 1996-03-16 23:52:42 +00:00
thorpej c685105f07 Don't deref a bad ucred pointer, from Dave Carrel <carrel@cisco.com>,
PR #1699.
1996-03-05 02:35:39 +00:00
mycroft 183aec8fa8 GC *_nullop(). Minor nits. 1996-02-13 13:12:48 +00:00
mycroft 5953a056eb GC dead_nullop(). 1996-02-13 13:02:40 +00:00
christos 19dc07be15 close PR/2063: procfs_rw prototyped twice with different prototypes 1996-02-12 15:01:41 +00:00
christos 631ccba638 miscfs prototype changes 1996-02-09 22:39:56 +00:00
mycroft fce3e0874f Fix vop_link, vop_symlink, and vop_remove semantics in several ways:
* Change the argument names to vop_link so they actually make sense.
* Implement vop_link and vop_symlink for all file systems, so they do proper
  cleanup.
* Require the file system to decide whether or not linking and unlinking of
  directories is allowed, and disable it for all current file systems.
1996-02-09 18:47:48 +00:00
mycroft 53fccab940 Fix vop_link, vop_symlink, and vop_remove semantics in several ways:
* Change the argument names to vop_link so they actually make sense.
* Implement vop_link and vop_symlink for all file systems, so they do proper
  cleanup.
* Require the file system to decide whether or not linking and unlinking of
  directories is allowed, and disable it for all current file systems.
1996-02-09 14:45:36 +00:00
jtc 299e1fe9df Rename struct timespec fields to conform to POSIX.1b 1996-02-01 00:31:05 +00:00
mycroft 5f8d113e8a Don't include free blocks from the lower layer in statistics. 1996-01-30 16:45:10 +00:00
mycroft 2d1739cbe1 Implement VOP_BWRITE() using vn_bwrite(), per r_friedl@informatik.uni-kl.de. 1995-10-15 05:18:12 +00:00
mycroft 3dc2e10405 Fix the inode calculation in kernfs_getattr(). 1995-10-09 14:25:02 +00:00
mycroft 1e583dfb19 /dev/std* are of type DT_LNK. 1995-10-09 14:20:04 +00:00
mycroft d60bb4a465 Use the index number as the cookie, rather than multiplying by UIO_MX. 1995-10-09 14:03:32 +00:00
mycroft bcaf2bca34 Add support for cookies, mostly from Greg Hudson. 1995-10-09 11:18:51 +00:00
mycroft 245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
mycroft d3f03a8c0c Avoid reentering union_dircache() by locking the union vnode. From John Kohl. 1995-10-05 06:26:12 +00:00
mycroft 36a94a031a Lock the process in core before operating on it. 1995-08-13 09:05:51 +00:00
mycroft 5482957905 splnet --> splsoftnet 1995-08-12 23:59:09 +00:00
cgd e9d17d38b5 avoid unnecessary aging of buffers. This used to make sense, when buffer
caches were much smaller, but makes little sense now, and will become more
useless as RAM (and buffer cache) sizes grow.  Suggested by Bob Baron.
1995-07-24 21:19:27 +00:00
cgd 3a99ca568b this README has been unnecessary for a while. 1995-07-24 07:59:06 +00:00
mycroft c57d78c71a Indirect off the right vnode when looking up the struct union_mount in
union_access().  Also, a trivial change to union_rmdir().
1995-07-13 13:19:18 +00:00
cgd fd0f559215 add missing splx(), as suggested by enami@sys.ptg.sony.co.jp. 1995-07-08 00:42:45 +00:00
mycroft 839598dfec Make spec_read() and spec_write() vaguely consistent. 1995-07-02 07:20:50 +00:00
gwr 09e284bcca Fix null VP references (pr 1124) - from John Kohl 1995-06-27 00:15:13 +00:00
gwr 5be81bd012 Fix null VP references (pr 1124) 1995-06-27 00:12:21 +00:00
cgd 8f62c773e8 don't assume the f_fsnamelen is nul-truncated or longer than MFSNAMELEN 1995-06-18 14:45:14 +00:00
mycroft e729deedb2 Fix a condition where union_updatevp() would reinsert the node onto the
wrong hash chain, by not swapping the hash values.  Noted by John Kohl, but
fixed differently.
1995-06-02 02:39:20 +00:00
jtc 95ded74f58 Moved egid credential from cr_groups[0] to new field cr_gid. POSIX.1
requires that sgid executables and the setuid() syscall *not* change
the supplemental group list.
1995-06-01 22:43:30 +00:00
mycroft e9f4bff2cc Add prototype. 1995-05-30 18:55:28 +00:00
mycroft 2bf9d56861 Always call union_diruncache() when removing the upper object. 1995-05-30 18:52:39 +00:00
mycroft 80d1ab77b5 Release the directory cache when a directory is removed or whited out. 1995-05-30 18:11:46 +00:00
mycroft 0ca2e1bd7d Fix typo. 1995-05-30 10:28:15 +00:00
mycroft 7c7b203953 Make sure un_dircache is set after union_dircache(), to avoid stranding
references and the dircache buffer.
1995-05-30 09:37:02 +00:00
mycroft 6760c93567 When a file is removed from the upper layer, make sure to release the
reference to it.  From John Kohl.
1995-05-30 09:07:10 +00:00
mycroft eb310b67a7 Fix order of lock assertions in union_lock() and union_removed_upper().
Sprinkle a few vprint()s.  From John Kohl.
1995-05-30 08:51:24 +00:00
cgd df052e72a6 clean up some return-type warnings 1995-04-15 01:57:35 +00:00
cgd 13f5026553 fix timeval vs. timespec warnings 1995-04-15 01:56:43 +00:00
mycroft b88eec60bb Allow opening a FIFO with O_RDWR. 1995-04-14 23:30:14 +00:00
mycroft 99005388fd Return EOF for old vnodes of tty devices, rather than EIO. 1995-04-10 00:48:46 +00:00
mycroft 7f3a305b34 Use the new d_type field. Set VISTTY for vnodes of tty devices. 1995-04-10 00:48:10 +00:00
mycroft 47ba263ebe Emulate SCO behaviour when both FREAD and FWRITE are set, but only for SCO
executables.
1995-04-02 19:27:48 +00:00
briggs 6efcd1b6d4 KERNEL -> _KERNEL 1995-03-29 21:57:43 +00:00
mycroft aae5ebefc2 Add missing arguments to VOP_CLOSE() in some cases. From Frank van der
Linden.
1995-03-11 06:14:28 +00:00
mycroft 2f805fa51b copy*str() should use size_t. 1995-03-09 12:05:21 +00:00
cgd aac6b08302 use u_long for copyin* 1995-03-08 01:33:20 +00:00
mycroft 597bdad3df Return EROFS rather than ENOENT in many cases. Also some cosmetic cleanup. 1995-02-03 16:18:46 +00:00
cgd 800be68af6 return EOPNOTSUPP from fhtovp and vptofh functions; doing otherwise
correctly is not possible.
1995-01-25 14:50:48 +00:00
mycroft e9017fd132 Clean up the code to frob mnt_stat a (tiny) bit. 1995-01-18 09:34:24 +00:00
chopps ce22a1a443 initialize variable as pointed out by David Jones <dej@qpoint.torfree.net>
this should fix pr #699
1995-01-05 07:10:54 +00:00
mycroft 635cd1625e Consistency with other file system code... 1994-12-29 22:48:16 +00:00
mycroft d2e8ed4eec Undo a few of the VCALL() changes for now. 1994-12-29 22:42:10 +00:00
mycroft 609063ce2b Format police. 1994-12-27 19:05:12 +00:00
ws 2f0fb8ee09 Implement and use a common access checking routine 1994-12-24 16:44:12 +00:00
glass b52bb59b86 fix compilation error 1994-12-18 07:20:34 +00:00
mycroft dbe5168d35 Remove a_fp. 1994-12-16 03:18:03 +00:00
mycroft 814ba0fc30 Call foo_statfs() from a common place when mounting. 1994-12-15 20:00:14 +00:00
mycroft 9996e27813 Fix minor bug in union_setattr(). 1994-12-15 19:15:06 +00:00
mycroft 467e30fb72 Still more VOP_*() -> VCALL() twiddling. 1994-12-15 19:06:50 +00:00
mycroft 0281dba8fa Some more VOP_*() -> VCALL() munging. 1994-12-15 18:58:11 +00:00
mycroft 7276c4ed44 Remove a_fp. 1994-12-14 18:45:21 +00:00
mycroft ef575bdbc1 Revert dup handling. 1994-12-14 18:40:27 +00:00
mycroft 33c3d64e0c Clean up deleted files. 1994-12-14 16:31:22 +00:00
mycroft 82ab4c687f Sync with CSRG. 1994-12-14 16:30:40 +00:00
mycroft a18ec3cb1b LEASE_CHECK -> VOP_LEASE 1994-12-13 21:52:35 +00:00
mycroft bc7ed2596e Fix editing errors. 1994-12-13 20:27:37 +00:00
mycroft 527b796ff5 Turn lease_check() into a vnode op, per CSRG. 1994-12-13 20:14:30 +00:00
mycroft f821e3012a Use VCALL() in lots of places. 1994-12-13 16:59:50 +00:00
mycroft 2981ef6595 Sync with CSRG. 1994-12-13 09:58:11 +00:00
mycroft b05e959a14 Use fddupopen(), just like fdopen() does. 1994-12-04 03:13:06 +00:00
mycroft 261751e81d Reimplement union_seek(). 1994-12-01 16:40:34 +00:00
mycroft 1056700333 Make sure averunnable.fscale is filled before using it. 1994-12-01 10:16:53 +00:00
christos a1dbf4aaa5 fixed struct comment 1994-11-14 06:08:21 +00:00
christos 923c9743a2 fixed struct comment; passed extra argument (struct file *) to open 1994-11-14 06:07:45 +00:00
christos 8cdc99a059 fixed struct comment 1994-11-14 06:04:31 +00:00
cgd 6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd be8c7b9d80 light clean; make sure headers are properly included, types are OK, etc. 1994-10-29 07:58:24 +00:00
cgd 6b86130410 update for new syscall args description mechanism 1994-10-20 04:22:35 +00:00
cgd a3e9e8091b fix device aliasing and lost vnode problems. 1994-09-20 06:43:00 +00:00
mycroft 76e0a7d0f4 Fix typo. 1994-09-15 03:47:19 +00:00
mycroft cab4d25c24 stat the file system at mount time, for `df -n', et al. 1994-09-15 03:42:37 +00:00
mycroft 2f710a54ee Convert process, file, and namei lists and hash tables to use queue.h. 1994-08-30 03:04:28 +00:00
mycroft f5faab89e9 Use VCALL(), not VOCALL(), and simplify union_advlock(). 1994-08-30 03:01:01 +00:00
mycroft 537ac5465f Convert hash tables. 1994-08-19 11:25:29 +00:00
mycroft 41761064b8 Implement /kern/msgbuf. 1994-07-21 10:22:20 +00:00
mycroft 6436952bbc Fix a null pointer dereference during rename(2). 1994-07-20 07:37:25 +00:00
paulus 988b7f5158 Support for block special files with sector sizes other than DEV_BSIZE -
if the device has a disklabel with a non-zero sector size value, that
value is used instead of DEV_BSIZE.
1994-07-16 11:40:56 +00:00
mycroft cb07d61edf Fix a fencepost error. 1994-07-14 20:58:28 +00:00
cgd cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
mycroft ab119e2183 Another update from JSP. 1994-06-17 15:21:33 +00:00
mycroft 18157b489f Remove an unneeded test. 1994-06-16 06:01:19 +00:00
mycroft 82ac72f664 Merge update from JSP. 1994-06-15 23:07:54 +00:00
mycroft 117527f322 Minor update from JSP after merging my changes. 1994-06-15 22:54:38 +00:00
mycroft 76ee6346df Deal with silly DIAGNOSTIC check. 1994-06-15 17:52:32 +00:00
mycroft 76fe13be8e Fix a bug pointed out by JSP. 1994-06-15 14:40:32 +00:00
mycroft 7162b2c482 Use vget() for devices. 1994-06-15 03:30:44 +00:00
mycroft 2e6e470fba Fix a bug in finding the raw root device. 1994-06-15 03:05:26 +00:00
mycroft e4c7b2cebe Clean up deleted files. 1994-06-13 17:48:29 +00:00
mycroft cde1d47595 Update to 4.4-Lite fs code, with local changes. 1994-06-08 11:33:09 +00:00
cgd ebcaebd335 MIN -> min, MAX -> max 1994-05-24 02:35:53 +00:00
mycroft 3f3d8b3889 Really fix the file size problem. 1994-05-17 06:59:17 +00:00
cgd fa475bdca1 actually set va_size! 1994-05-17 04:10:29 +00:00
cgd d9f8c89a76 setrun rename 1994-05-07 01:15:38 +00:00
cgd a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
cgd 17f30a5d0b kill obvious bug; glad to know this was tested! 1994-05-04 05:41:55 +00:00
cgd 4bbabd8e7a Rename a lot of process flags. 1994-05-04 03:41:12 +00:00
cgd d071d1cf05 some prototype cleanup, eliminate/replace bogus types (e.g. quad and
u_quad) -> use better types (e.g. quad_t & u_quad_t in inodes),
some cleanup.
1994-04-25 03:49:27 +00:00
cgd 4917d8beec make fs types consistent over new kernels. also, some proto foo. 1994-04-23 07:54:38 +00:00
cgd 3dda0064a5 Convert mount, vnode, and buf structs to use <sys/queue.h>. Also,
some knf and structure frobbing to do along with it.
1994-04-21 07:47:31 +00:00
cgd 914b690745 forgot these... 1994-04-15 20:49:27 +00:00
cgd 93159ea799 fs types are names now. 1994-04-14 04:05:45 +00:00
cgd 656b05ccf6 be a bit smarter about determining if files shouldn't be seen by the user.
Also, DON'T allow a lookup to succeed on a file that's not visible!
1994-04-12 02:55:51 +00:00
briggs bf860bb2b2 PG_COW -> PG_COPYONWRITE to match earlier changes in vm_page.h. 1994-03-17 04:10:32 +00:00
cgd 45afe06953 I now understand why name caching was redone for 4.4BSD; Net/2's
method of caching names has a totally bogus interface.  kill *ALL*
caching of names when going through a lofs, because that's the only
way to make sure things always work right.  Also, XXX the possibly-bogus
check i keep whining about.  it's almost certainly wrong, but it's
too weird to modify significantly; even jsp didn't want to touch it...
1994-02-25 23:41:56 +00:00
cgd 7f77e98242 getting closer; stilly iffy though. 4.4's VFS would make this easier 1994-02-25 01:05:32 +00:00
mycroft 349d681690 Undo last change; executables is `file', not `a.out'. 1994-02-15 13:32:39 +00:00
ws 1df94d108f Add .. entry to /kern 1994-02-14 19:46:18 +00:00
ws 0cb2a819b2 Rename file -> a.out 1994-02-14 19:08:36 +00:00
ws 4eab6179ba Don't try to show a file for a process if there is none 1994-02-14 19:07:27 +00:00
cgd bb5d305ea8 fix typo and allow creations to work right. this is in a questionably
correct chunk of code; author contacted.
1994-02-14 19:02:54 +00:00
cgd b41fd90fdc don't give bogus return code from read() 1994-02-11 01:01:51 +00:00
cgd d43a0f37b1 don't panic if user does 'cat /kern', though result is dubious. 1994-02-09 06:32:17 +00:00
ws 2df8c5f528 If you add files, be sure to have enough bits to encode an inode number! 1994-02-06 14:01:16 +00:00
cgd 89a86e618e make a fpregs file. 1994-01-28 07:03:16 +00:00
cgd 7df895cf91 oops; fix that last... 1994-01-27 03:42:02 +00:00
cgd 5e12573ac2 hack from Mike Karels to deal with the last close on a controlling
terminal.  from 4.4BSD.
1994-01-27 03:16:40 +00:00
ws 2cee3e073f Make procfs really work for debugging.
Implement not & notepg files in procfs.
1994-01-20 21:22:47 +00:00
mycroft bff20215e7 Make a printf #ifdef PORTAL_DIAGNOSTIC. 1994-01-13 18:29:03 +00:00
cgd 6570678929 fix botch in last 1994-01-12 20:01:39 +00:00
cgd dc254a5c58 update to portal credentials handling, from jsp 1994-01-12 19:50:22 +00:00
ws 5f7ef81c6f Fix ugliness left over from my last mod 1994-01-11 18:02:06 +00:00
ws a24f445d60 Fix sign extension bug 1994-01-10 20:47:39 +00:00