Commit Graph

97 Commits

Author SHA1 Message Date
perseant f0728fdce1 Change the sementics of the last parameter from a boolean ("waitfor") to
a set of flags ("flags").  Two flags are defined, UPDATE_WAIT and
UPDATE_DIROP.

Under the old semantics, VOP_UPDATE would block if waitfor were set,
under the assumption that directory operations should be done
synchronously.  At least LFS and FFS+softdep do not make this
assumption; FFS+softdep got around the problem by enclosing all relevant
calls to VOP_UPDATE in a "if(!DOINGSOFTDEP(vp))", while LFS simply
ignored waitfor, one of the reasons why NFS-serving an LFS filesystem
did not work properly.

Under the new semantics, the UPDATE_DIROP flag is a hint to the
fs-specific update routine that the call comes from a dirop routine, and
should be wait for, or not, accordingly.

Closes PR#8996.
2000-05-13 23:43:06 +00:00
jdolecek 40d9f8a709 msdosfs_read(): avoid integer overflow for files > 2GB, when
difference between current read position and file size
	is bigger than 2GB

This fixes problem first noted in FreeBSD PR#15639 and sent
by Martin J. Laubach in kern/9046, though the implementation
differs a bit.
2000-04-22 22:45:37 +00:00
augustss f0f9fcbe61 Remove register declarations. 2000-03-30 12:23:20 +00:00
jdolecek 07fd899a7f Add new CLUST_END and use it as parameter to pcbmap() when searching
for end cluster, instead of explicitly passing 0xffff. This fixes potential
problem for FAT32, where cluster number may be legally bigger than 0xffff.

Also change clusteralloc() so that fillwith is not explicitly passed by caller
anymore (there is no need to use anything other than CLUST_EOFE).

Reviewed by: Wolfgang Solfrank
2000-03-27 17:40:26 +00:00
jdolecek 1d246008e0 Support async option by using delayed writes for metadata when mounted
with async. This increases the speed of my extract-archive test by about
20% on floppy, 10% on ZIP. "You've got the rope."
2000-03-27 09:44:45 +00:00
soren 95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +00:00
jdolecek 88a4a819b8 When renaming a file, make sure apporpriate vnode cache entry is
purged if a file system entry is removed. Fixes part of kern/8037.

Reviewed by: Wolfgang Solfrank
Tested by: jdolecek
2000-02-01 21:33:57 +00:00
jdolecek 0e45514ac9 make compilable with MSDOSFS_DEBUG (adapt to usecount & writecount size change) 2000-02-01 10:33:18 +00:00
fvdl 0b1963121a Add Kirk McKusick's soft updates code to the trunk. Not enabled by
default, as the copyright on the main file (ffs_softdep.c) is such
that is has been put into gnusrc. options SOFTDEP will pull this
in. This code also contains the trickle syncer.

Bump version number to 1.4O
1999-11-15 18:49:07 +00:00
jdolecek fe54414362 msdosfs_readdir(): set iovec offset correctly so that some long filename
entries won't be ignored when contents of the directory don't
fit in user buffer all at once.

Fixes kern/4492 by Rick Byers <rickb@iaw.on.ca>.
1999-11-04 23:08:57 +00:00
itohy 5de5ad21a2 Revoke revoke(2) bug. 1999-08-19 03:42:23 +00:00
jdolecek 6d72115a23 msdosfs_access(): initialize mode to ap->a_mode instead of 0. Fixes PR 7619.
The bug has been accidentaly introduced in revision 1.56.
msdosfs_setattr(): do ROFS checks as appropriate; while here optimize
	to only call deupdat() if there actually has been any change

Tested by: jdolecek
Rewieved by: wrstuden
1999-08-16 07:43:12 +00:00
wrstuden 0833711f66 Modify msdosfs_getattr() so that it will report archived files (ATTR_ARCHIVE
cleared) as mode S_ARCH1 in addition to having flags SF_ARCHIVED.
1999-08-03 22:02:21 +00:00
wrstuden 3bf14d81e9 Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl
call with F_FSCTL set and F_SETFL calls generate calls to a new
fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0
for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems
use genfs_fcntl().

Reviewed by: thorpej
Tested by: wrstuden
1999-08-03 20:19:16 +00:00
cgd 16db153ba2 fix MSDOSFS_DEBUG printf arg type 1999-07-26 00:14:27 +00:00
wrstuden 379a26972f Modify file systems to deal with struct lock in struct vnode. All leaf
fs's other than nfs use genfs_lock() for locking.

Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
1999-07-08 01:05:58 +00:00
tron a602deb000 Silently ignore attributes modifications on directories. Fixes
PR kern/7630 by Markus Kurek.
1999-05-24 23:01:13 +00:00
abs 609ddc8c40 Remove spurious call to de_bn2cn(). A "cluster" in MSDOSFS is already
equivalent to a "block" is in FFS. Fixes vnds on MSDOSFS, and should
eliminate a 'getblk: block size invariant failed' panic.
Directly from PR7380 <elric@imrryr.org>.
1999-04-21 17:13:22 +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
kleink 9ee75a4fcc Add _PC_FILESIZEBITS to pathconf vnop. 1999-03-22 19:21:07 +00:00
mycroft 86ed73efb4 Permit the access and modify time pointers passed to VOP_UPDATE to be null,
meaning the current time.
1999-03-05 20:47:06 +00:00
ws c6b24f68f0 Set the tooffset after renaming even if in root directory. 1998-09-21 15:17:42 +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
kleink 933111f98f Implement support for IEEE Std 1003.1b-1993 synchronous I/O:
* in the read vnode operator, check for IO_SYNC being set in the ioflag and
  synchronously update the file's meta-data if appropriate.
* in the write vnode operator, update the appropriate checks for IO_SYNC being
  set in the ioflag to reflect that IO_DSYNC is now inclusive-or'ed into
  IO_SYNC, and require all IO_SYNC bits to be set for operations defined by
  synchronized I/O file integrity completion but not by synchronized I/O data
  integrity completion.
1998-08-02 18:57:23 +00:00
fvdl ebe551c3b3 Guess the number of needed cookies in a better way, and check for
overflow of the cookie array. Pointed out by Wolfgang Solfrank.
1998-04-21 09:37:23 +00:00
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
mrg dec29037df make these compile. 1998-02-12 10:12:55 +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
ws 4e4c231c15 PR4393: additional fixes of format strings for unsigned parameters
PR4394: be more consistent with other MSDOSFS_DEBUG messages
PR4395: fix generation numbers as in the PR, and fix short name for e.g. x.aaaa
PR4396: easier fix then given in the PR
All PRs by Rick Byers.  Thanks Rick for pointing these out
1997-11-17 15:36:17 +00:00
christos 96a8d9af7b PR/4393: Rick Byers: MSDOSFS_DEBUG kernel does not compile. 1997-11-16 21:47:27 +00:00
ws f1be2b6fac Fix lossage with diroffset handling in root dir 1997-11-08 19:18:57 +00:00
ws 9c1b7cfa37 Add support for FAT32
Don't panic if renaming a file to itself
Don't try to keep access times, there is no place for them
While being here, fix some minor bugs with VFAT handling
1997-10-17 11:23:29 +00:00
christos 7a5c72bb88 Add missing cast to nlink_t 1997-10-16 23:58:05 +00:00
fvdl fd5433c6bc Bump last argument to VOP_READDIR to off_t (from u_long). 1997-10-10 01:57:31 +00:00
christos 7eaff8a411 Remove bogus `locking by process 0' diagnostic; from Charles. 1997-07-30 03:47:12 +00:00
fvdl 3d85c0c28a Return EPERM for an attempt to remove a directory with VOP_REMOVE. 1997-06-30 20:20:31 +00:00
christos b59135a6fb Avoid panic triggered by rename("foo/", "bar/..") (From Mycroft) 1997-06-26 22:23:17 +00:00
mycroft 5bd3538a41 Fix typo. 1997-05-08 16:43:16 +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
ws 976b43fd61 Fix panic on mkdir.
Thanks to Dave Huang for finding the bug.
1996-11-08 15:51:49 +00:00
christos 17f5b2a175 backout previous kprintf changes 1996-10-13 04:10:34 +00:00
christos 60d201973e printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:46:11 +00:00
mycroft 2bc736661a Implement poll(2). 1996-09-07 12:40:22 +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
mycroft 3d7adb4768 sys/dir.h -> sys/dirent.h 1996-08-10 08:48:24 +00:00
ws 7d29fb5aaa Allow renaming when destination exists.
Fixes PR#2629
1996-07-15 19:12:13 +00:00
thorpej c761c7d3ca Shut up whining compiler so this will build on a SPARC again (-Wall). 1996-03-20 00:45:40 +00:00