Commit Graph

167 Commits

Author SHA1 Message Date
kleink e9d6f5e996 Per IEEE Std 1003.1b-1993, implement the fdatasync() system call which is
identical to fsync() with the expecption of not being required to synchronize
file status information.
1998-06-05 20:31:36 +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 3a1500efe9 Per X/Open CAE Spec Issue 5 Version 2, change the buffer size argument of
readlink() from type `int' to type `size_t'.  This isn't an ABI change, since
the calling convention of our only LP64 platform (the Alpha) already promotes
this argument to a `long'.

This may not be the final action on this matter; readlink() still returns
an `int', which may change in a future revision of the standard.
1998-03-27 13:02:20 +00:00
kleink 071ab13ebb Move the permission check in change_owner() back to ufs_vnops::ufs_chown()
again - the facility required in this context would be a filesystem-specific
super-user determination, which is not available yet.  Also, add some
clarification to a comment.
1998-03-10 11:49:33 +00:00
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
kleink 3ef309317a * Factor out some permission-checking code from ufs_setattr() into
change_owner().
* Change the semantics of chown(), fchown() and lchown(): when requesting a
  change of the owner of a file, clear the set-user-id bit; analogous behaviour
  for group changes.
* Since the above is a violation of the semantics specified by POSIX and
  X/Open, add corresponding compatibility syscalls: __posix_chown(),
  __posix_fchown(), __posix_lchown().  (Neither fchown() nor lchown() is
  specified by POSIX; the prefix is intended to reflect the semantics.)
* Rename posix_rename() to __posix_rename() to follow the above convention.
1998-02-14 19:49:43 +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
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
thorpej ec98cfce8a sys_mount(): Use vfs_getopsbyname() rather than groveling the vfssw[]
manualls.
1998-02-03 09:11:55 +00:00
kleink 087ac96d12 Update to last commit: do not pass the accounting flag to suser(), since the call does not actually *use* super-user privileges. Pointed out by Charles. 1997-12-21 18:50:57 +00:00
kleink aa4d1febf1 Due to the feedback received, change chown(), fchown() and lchown() not to
clear the setgid and setuid bits if called by the superuser.  Addresses
PR kern/4662.
1997-12-21 17:49:18 +00:00
enami 4589c896eb Conditionalize the recognition of symbolic link permission by
per fs mount option `symperm'.
1997-10-30 22:47:06 +00:00
thorpej 14cd99880c Fix the shared library versioning snafu caused by the recent changes
to the stat(2) family and msync(2).  This uses a primitive function
versioning scheme.

This reverts the libc shared library major version from 13 to 12, and
adds a few new interfaces to bring us to libc version 12.20.

From Frank van der Linden <fvdl@NetBSD.ORG>.
1997-10-20 22:05:06 +00:00
mycroft 9341cad610 After conversion of the file flags, if neither FREAD nor FWRITE is set,
return EINVAL.
1997-10-19 17:18:10 +00:00
mycroft 11c9f28f0e Update comment. 1997-10-19 03:29:20 +00:00
enami db7f1ad2ad Check read permission of symbolic link in vfs layer, when doing readlink(2).
Suggested by der Mouse.  Ok'ed by Jason R. Thorpe.
1997-10-11 00:05:15 +00:00
fvdl 541b204984 Add vn_readdir function for use in both the old getdirentries and
the new getdents(). Add getdents().
1997-10-10 02:09:30 +00:00
thorpej b4b543bc6f In sys_mount(), use vfs_getopsbyname() rather than using an explicit
reference to vfssw[].
1997-10-09 00:39:19 +00:00
thorpej c08ce9b419 If COMPAT_09 or COMPAT_43 are defined, include a table of "mount compatnames",
which maps the old file system index numbers to the new (well, since after
NetBSD 0.9) string-based method of finding a file system ops vector.  Use
this table rather than assuming the ordering of the vfssw[] array when
emulating the old mount system call.
1997-10-06 09:19:11 +00:00
enami 83d3cd0ec7 New function sys_lchmod(), sys_lchown() and sys_lutimes() to manipulate
symbolic links.
1997-10-03 14:44:26 +00:00
enami ea531316f0 - New function change_mode() to set mode given a vnode.
- New function change_utimes() to set access and modification times
  given a vnode.
- In the function sys_chmod() and sys_fchmod(), call change_mode().
- In the function sys_utimes() and sys_futimes(), call
  change_utimes().
1997-10-03 14:14:36 +00:00
enami a117f2d89b Reorder some piece of code;
In the function sys_utimes, do NDINIT() and namei() first.
In the function sys_futimes, do getvnode() first.
1997-10-03 13:46:02 +00:00
enami dec1d15959 In the function sys_chmod and sys_utimes, use VOP_UNLOCK(vp) and vrele(vp)
instead of vput(vp).
1997-10-03 13:37:33 +00:00
enami ba054536f8 Fold lone line to fit column < 80. 1997-10-03 13:32:06 +00:00
enami 9f882ea0ee Cosmetic change;
(error = ...) -> (error = ...) != 0, like other place.
1997-10-03 13:29:20 +00:00
kleink 66105c37fc Lseek(2) usage cleanup: the use of L_SET/L_INCR/L_XTND is deprecated,
use SEEK_SET/SEEK_CUR/SEEK_END instead.
1997-08-25 19:31:43 +00:00
fvdl b5e26aee04 Invalidate publicly exported FS info when unmounting it locally. 1997-06-24 23:44:57 +00:00
kleink d3aadd8976 Add posix_rename() syscall. 1997-05-18 19:56:48 +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 837a72363d VEXEC -> VLOOKUP, as appropriate. 1997-05-08 10:57:17 +00:00
mycroft d7f33c5e60 va_mode contains stat bits. Use S_IS[UG]ID rather than VS[UG]ID. 1997-05-08 10:19:10 +00:00
kleink 29c5707479 * Make chown()/fchown() use a piece of common code to set ownership.
* Setting the ownership of a file now implies clearing its set-{group,user}-id
  bits.
1997-04-30 19:29:43 +00:00
kleink e490ffb5cc Addendum to last commit: "simplify" usage of a vnode pointer. 1997-04-11 22:08:28 +00:00
kleink 589549e022 Use VOP_SEEK() in lseek(2). 1997-04-11 22:03:58 +00:00
kleink 116d655640 Back out POSIX.1 conformance change to lseek(2); this will be attended to
in a different way.
1997-04-09 23:26:06 +00:00
kleink 9300dedf8e Back out last change to rename(2) until a sane solution for the coexistence
of both BSD and POSIX semantics is available.
1997-04-07 00:04:16 +00:00
kleink 9d8538dd8b Changed lseek(2): return EINVAL upon attempt to seek to negative offset. 1997-04-04 13:57:06 +00:00
kleink 50ccaeca39 Converted rename(2) to proper POSIX.1 behavior: if "from" and "to"
are links to the same file, do nothing. This also eliminates the
previous (and incorrect) check, which was far more complicated.
1997-04-04 13:32:48 +00:00
fvdl 9599f78147 Add missing part of MNT_NOATIME commit: add it to the flags that can
be set by the mount system call.
1997-03-13 20:20:39 +00:00
fvdl 0538233e2c Implement changes to make fix for NQNFS and MFS unmounting (race conditions)
work. Not quite as good as with the Lite2 merges, but it'll do until then.

* dounmount() expects to be called with the mountpoint marked busy
* all callers of dounmount() thus make the call themselves
* if a filesystem was being unmounted, and we're woken up in vfs_busy(),
  don't reference the mountpoint struct pointer, as it has very probably
  been freed.
1997-02-22 03:22:32 +00:00
mikel b0e7d3c13b sync filesystems in reverse order. suggested originally by Jim Rees
<rees@citi.umich.edu>, with some updating by Greg Hudson <ghudson@mit.edu>.
1997-02-20 04:52:44 +00:00
tls 4b1213d27c sync needs to clean VM objects backed by vnode pagers 1997-02-13 02:54:06 +00:00
fvdl c745cba077 If the target for a rename() call exists, it will be removed. So, don't
leave any pages around (i,e, insert a vnode_pager_uncache()).
1997-02-10 12:41:19 +00:00
cgd e7af2a8237 * catch up with system call argument type fixups/const poisoning.
* Fix arguments to various copyin()/copyout() invocations, to avoid
  gratuitous casts.
* Some KNF formatting fixes
1996-12-22 10:21:06 +00:00
cgd 6d3337bdf6 permit MNT_NOCOREDUMP as a generic mount flag. 1996-10-23 23:07:08 +00:00
jtc 4039b6bcba Return ESPIPE when filedes is associated with a FIFO. 1996-10-21 17:42:48 +00:00
mycroft 584810c846 Implement futimes(). 1996-04-23 10:29:02 +00:00
thorpej 44dcfee5ea Move an #ifdef FIFO so this compiles on a SPARC (-Wall) if FIFO is not
defined.
1996-03-22 06:51:04 +00:00
fvdl 6c53a8d22f Remove previously introduced bug: always make sure mappings of a removed
file don't stick around.
1996-03-18 23:06:08 +00:00
christos 09afd77655 More proto fixes 1996-02-09 18:59:18 +00:00
mycroft 06a1236be9 Rearrange the locking in sys_unlink(), more like nfsrv_remove(). 1996-02-09 15:39:12 +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
mycroft 7366dec9ec No need for LOCKPARENT in sys_lstat(), and eliminate dead variables. 1996-02-08 02:54:20 +00:00
jtc d9d402d0fb Revert to sane symlink semantics. This something we should have done
long ago.  Fixes many PRs.
1996-02-07 16:55:56 +00:00
christos e630447d8c First pass at prototyping 1996-02-04 02:17:43 +00:00
mycroft bb7cccd06d Do the previous change a little differently. 1996-02-02 07:49:52 +00:00
jtc e19bfae4f9 Rename struct timespec fields to conform to POSIX.1b 1996-02-01 00:18:04 +00:00
mycroft 99686e0059 Add a vnode** argument to getvnode(), prototype it, and make it return
EBADF if the file descriptor has been revoked.
1996-01-30 20:05:33 +00:00
mycroft 7edc899fdd ffs -> ufs 1995-11-11 22:00:15 +00:00
gwr dd962ebbf6 Make sys_mount accept "ufs" as an alias for "ffs" 1995-11-07 22:41:02 +00:00
mycroft 245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
thorpej 60024eb978 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 21:40:36 +00:00
christos 1a5a3c9199 Extracted all of the compat_xxx routines, and created a library [libcompat]
for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy
or worth eliminating (yet).
1995-06-24 20:33:55 +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
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
christos fb371ccef0 tty_tb.c: need to include ioctl_compat.h in order to compile.
sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by
	    COMPAT_HPUX. There should be a better way...
rest: Add #ifdef COMPAT_HPUX where needed
1995-05-10 16:52:53 +00:00
mycroft 2f805fa51b copy*str() should use size_t. 1995-03-09 12:05:21 +00:00
cgd 9c3af345b5 use NULL rather than casted zero 1995-03-08 01:21:30 +00:00
fvdl cb05b6a54b Two more "|| defined(COMPAT_LINUX)" that I somehow missed first time around. 1995-03-05 20:48:15 +00:00
fvdl 7b5bd63e35 Extended a couple of defines with "|| defined(COMPAT_LINUX)" to make
things compile without requiring COMPAT_43 and/or COMPAT_09.
1995-03-05 08:52:17 +00:00
mycroft af0c359450 Turn mountlist into a CIRCLEQ, and handle setting and checking of MNT_ROOTFS
differently.
1995-01-18 06:14:43 +00:00
mycroft b4aa6d3a28 Call foo_statfs() from a common place when mounting. 1994-12-15 19:46:08 +00:00
mycroft 12371eafc4 Revert open() completely. 1994-12-14 19:36:15 +00:00
mycroft 1b00f4cc4e Revert dup handling. Remove extra arg to vn_open(). 1994-12-14 19:08:07 +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 23bd29ca27 Minor changes. 1994-12-13 09:49:13 +00:00
mycroft b58324b77a Abstract out the code to maintain fd_lastfile. Remove the old dup() compatibility
kluge.  Rearrange fdopen() handling.  Make a common function to handle closing
a particular file descriptor in a process.  Some other cleanup.
1994-12-04 03:09:50 +00:00
christos 70e6f7edb8 Don't VOP_UNLOCK the vnode on a cloning operation. vput() will do it for
us.
1994-11-18 02:48:58 +00:00
christos 3e935d8a0d Added ifdef COMPAT_SVR4 to the kernel compat code needed. 1994-11-17 20:27:10 +00:00
christos 1a320dc9be added extra argument in vn_open and VOP_OPEN to allow cloning devices 1994-11-14 06:01:16 +00:00
cgd 6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd 6b86130410 update for new syscall args description mechanism 1994-10-20 04:22:35 +00:00
mycroft 480c10c23a Maintain vfs reference counts. 1994-09-22 02:17:00 +00:00
mycroft 4566d7f5ba Need ostat() and olstat() for iBCS2 syscall conversion. 1994-08-15 22:06:47 +00:00
mycroft 4a8bf3976b Fix a problem in sync() where we might keep a stale pointer to the next mount
entry.
1994-08-13 07:05:53 +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 1e92bdf540 Make ogetdirentries() if COMPAT_HPUX. 1994-06-22 03:01:16 +00:00
mycroft e916c8d15f Update to union mount code from JSP. 1994-06-16 14:14:57 +00:00
mycroft 699bbb84b6 Update to 4.4-Lite fs code. 1994-06-08 11:28:29 +00:00
cgd 6dad8d7a8a put sync printing in one place 1994-05-18 00:35:07 +00:00
cgd 0e794e2d48 stub pathconf, kill some spaces 1994-05-07 00:59:59 +00:00
cgd f8dd4f370d expand the rlimit struct, kill last vestiges of off_t bogosity. 1994-05-04 01:38:25 +00:00
cgd f50f031448 kill syscall name aliases. no user-visible changes 1994-04-29 04:41:02 +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 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 551e92c16a start to phase out temp. off_t syscalls 1994-04-16 23:19:06 +00:00
cgd 3b4faf4521 slightly loosen lseek restriction 1994-04-16 06:51:58 +00:00
cgd 4be7b669e2 fs types are names now; accompanying changes. 1994-04-14 04:05:28 +00:00
cgd b9bf37a91f if MNT_USER is set, let fs authenticate unmount 1994-04-07 07:20:31 +00:00