Commit Graph

352 Commits

Author SHA1 Message Date
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