aboutsummaryrefslogtreecommitdiff
path: root/sys/msdosfs/msdosfs_vnops.c
Commit message (Collapse)AuthorAgeFilesLines
* This commit was manufactured by cvs2svn to create tagrelease/2.2.7_cvscvs2svn1998-07-241-1/+1
| | | | | | | 'RELENG_2_2_7_RELEASE'. This commit was manufactured to restore the state of the 2.2.7-RELEASE image. Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
* MFC: Bring in FAT32 support from -current.Jordan K. Hubbard1998-07-161-861/+1145
| | | | | | | Merged by: Hideki Yamamoto <hyama@kansai.oki.co.jp> Notes: svn path=/stable/2.2/; revision=37693
* Fix panics caused by GNU grep on cd9660 and msdos filesystems.Doug Rabson1997-07-071-4/+22
| | | | | | | | PR: 4011 Submitted by: yamagata@nwgpc.kek.jp Notes: svn path=/stable/2.2/; revision=27259
* YAMFC (don't sync the directory entry for every successful write).Bruce Evans1997-02-131-2/+2
| | | | Notes: svn path=/stable/2.2/; revision=22631
* MSDOS FS used to allocate a buffer before extending the VM object. InJohn Dyson1996-10-021-7/+9
| | | | | | | | | certain error conditions, it is possible for pages to be left allocated in the object beyond it's end. It is generally bad practice to allocate pages beyond the end of an object. Notes: svn path=/head/; revision=18640
* In sys/time.h, struct timespec is defined as:Nate Williams1996-09-191-2/+2
| | | | | | | | | | | | | | | | | /* * Structure defined by POSIX.4 to be like a timeval. */ struct timespec { time_t ts_sec; /* seconds */ long ts_nsec; /* and nanoseconds */ }; The correct names of the fields are tv_sec and tv_nsec. Reminded by: James Drobina <jdrobina@infinet.com> Notes: svn path=/head/; revision=18397
* Eliminated nested include of <sys/unistd.h> in <sys/file.h> in the kernel.Bruce Evans1996-09-031-2/+2
| | | | | | | | | | Include it directly in the few places where it is used. Reduced some #includes of <sys/file.h> to #includes of <sys/fcntl.h> or nothing. Notes: svn path=/head/; revision=18020
* The Great PC98 Merge.Satoshi Asami1996-06-141-1/+15
| | | | | | | | | | | All new code is "#ifdef PC98"ed so this should make no difference to PC/AT (and its clones) users. Ok'd by: core Submitted by: FreeBSD(98) development team Notes: svn path=/head/; revision=16363
* Untangled the vm.h include file spaghetti.David Greenman1995-12-071-1/+3
| | | | Notes: svn path=/head/; revision=12662
* Added prototypes.Bruce Evans1995-12-031-1/+2
| | | | Notes: svn path=/head/; revision=12596
* Fixed getdirentries() on nfs mounted msdosfs's. No cookies were returnedBruce Evans1995-11-131-14/+3
| | | | | | | | | | | for certain common combinations of directory sizes, cluster sizes, and i/o sizes (e.g., 4K, 4K, and 4K). The fix in rev. 1.21 was incomplete. Reviewed by: dfr Obtained from: party from NetBSD Notes: svn path=/head/; revision=12265
* Introduced a type `vop_t' for vnode operation functions and usedBruce Evans1995-11-091-40/+40
| | | | | | | | | | | | | | | | | | it 1138 times (:-() in casts and a few more times in declarations. This change is null for the i386. The type has to be `typedef int vop_t(void *)' and not `typedef int vop_t()' because `gcc -Wstrict-prototypes' warns about the latter. Since vnode op functions are called with args of different (struct pointer) types, neither of these function types is any use for type checking of the arg, so it would be preferable not to use the complete function type, especially since using the complete type requires adding 1138 casts to avoid compiler warnings and another 40+ casts to reverse the function pointer conversions before calling the functions. Notes: svn path=/head/; revision=12158
* Second batch of cleanup changes.Poul-Henning Kamp1995-10-291-37/+74
| | | | | | | | This time mostly making a lot of things static and some unused variables here and there. Notes: svn path=/head/; revision=11921
* Moved the filesystem read-only check out of the syscalls and into theDavid Greenman1995-10-221-101/+108
| | | | | | | | | | | filesystem layer, as was done in lite-2. Merged in some other cosmetic changes while I was at it. Rewrote most of msdosfs_access() to be more like ufs_access() and to include the FS read-only check. Obtained from: partially from 4.4BSD-lite2 Notes: svn path=/head/; revision=11644
* Return EINVAL instead of panicing for rename("dir1", "dir2/..").Bruce Evans1995-10-071-2/+3
| | | | | | | | | Fixes part of PR 760. This bug seems to be very old. Notes: svn path=/head/; revision=11297
* Added VOP_GETPAGES/VOP_PUTPAGES and also the "backwards" block countJohn Dyson1995-09-041-1/+5
| | | | | | | for VOP_BMAP. Updated affected filesystems... Notes: svn path=/head/; revision=10551
* Fix bogus arg (&p instead of p) in the call to VOP_ACCESS() fromBruce Evans1995-08-251-2/+2
| | | | | | | msdosfs_setattr(). The bug was benign because the arg isn't used. Notes: svn path=/head/; revision=10272
* Make sure that a non-null cookie vector is returned even if there were noDoug Rabson1995-08-031-1/+9
| | | | | | | valid entries in the block. Doing otherwise confuses the nfs server. Notes: svn path=/head/; revision=9878
* Add support for the va_filerev attribute required by NFSv3.Doug Rabson1995-08-021-1/+2
| | | | Notes: svn path=/head/; revision=9862
* Removed my special-case hack for VOP_LINK and fixed the problem with theDavid Greenman1995-08-011-2/+2
| | | | | | | | | | wrong vp's ops vector being used by changing the VOP_LINK's argument order. The special-case hack doesn't go far enough and breaks the generic bypass routine used in some non-leaf filesystems. Pointed out by Kirk McKusick. Notes: svn path=/head/; revision=9842
* Fixed VOP_LINK argument order botch.David Greenman1995-06-281-3/+3
| | | | Notes: svn path=/head/; revision=9354
* Merge RELENG_2_0_5 into HEADRodney W. Grimes1995-06-111-16/+7
| | | | Notes: svn path=/head/; revision=9202
* Remove trailing whitespace.Rodney W. Grimes1995-05-301-27/+27
| | | | Notes: svn path=/head/; revision=8876
* Submitted by: Mike Pritchard <pritc003@maroon.tc.umn.edu>Bruce Evans1995-05-091-1/+10
| | | | | | | | | | | | msdosfs_lookup() did no validation to see if the caller was validated to delete/rename/create files. msdosfs_setattr() did no validation to see if the caller was allowed to change the file permissions (turn on/off the write bit) or update the file modification time (utimes). The routines were fixed to validate the calls just like ufs does. Notes: svn path=/head/; revision=8386
* Fix link sys callAndrey A. Chernov1995-04-111-2/+4
| | | | | | | Submitted by: pritc003@maroon.tc.umn.edu Notes: svn path=/head/; revision=7760
* Removed redundant newlines that were in some panic strings.David Greenman1995-03-191-2/+2
| | | | Notes: svn path=/head/; revision=7170
* These changes embody the support of the fully coherent merged VM buffer cache,David Greenman1995-01-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | much higher filesystem I/O performance, and much better paging performance. It represents the culmination of over 6 months of R&D. The majority of the merged VM/cache work is by John Dyson. The following highlights the most significant changes. Additionally, there are (mostly minor) changes to the various filesystem modules (nfs, msdosfs, etc) to support the new VM/buffer scheme. vfs_bio.c: Significant rewrite of most of vfs_bio to support the merged VM buffer cache scheme. The scheme is almost fully compatible with the old filesystem interface. Significant improvement in the number of opportunities for write clustering. vfs_cluster.c, vfs_subr.c Upgrade and performance enhancements in vfs layer code to support merged VM/buffer cache. Fixup of vfs_cluster to eliminate the bogus pagemove stuff. vm_object.c: Yet more improvements in the collapse code. Elimination of some windows that can cause list corruption. vm_pageout.c: Fixed it, it really works better now. Somehow in 2.0, some "enhancements" broke the code. This code has been reworked from the ground-up. vm_fault.c, vm_page.c, pmap.c, vm_object.c Support for small-block filesystems with merged VM/buffer cache scheme. pmap.c vm_map.c Dynamic kernel VM size, now we dont have to pre-allocate excessive numbers of kernel PTs. vm_glue.c Much simpler and more effective swapping code. No more gratuitous swapping. proc.h Fixed the problem that the p_lock flag was not being cleared on a fork. swap_pager.c, vnode_pager.c Removal of old vfs_bio cruft to support the past pseudo-coherency. Now the code doesn't need it anymore. machdep.c Changes to better support the parameter values for the merged VM/buffer cache scheme. machdep.c, kern_exec.c, vm_glue.c Implemented a seperate submap for temporary exec string space and another one to contain process upages. This eliminates all map fragmentation problems that previously existed. ffs_inode.c, ufs_inode.c, ufs_readwrite.c Changes for merged VM/buffer cache. Add "bypass" support for sneaking in on busy buffers. Submitted by: John Dyson and David Greenman Notes: svn path=/head/; revision=5455
* Fix panic for `cp -p' by root to an msdos file system. Improve handlingBruce Evans1994-12-271-16/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of attributes so that `cp -p' to an msdos file system can succeed under favourable circumstances (no uid or gid changes and no nonzero flags except SF_ARCHIVED). msdosfs_vnops.c: The in-core inode flags were confused with the on-disk inode flags, so chflags() clobbered the lock flag and caused a panic. denode.h, msdosfs_denode.c, msdosfs_vnops.c: Support the msdosfs archive attibute (ATTR_ARCHIVE) by mapping it to the complement of the SF_ARCHIVED flag and setting the ATTR_ARCHIVE bit when a file's modification time is set (but not when a file's permissions are set; this is the standard wrong DOS behaviour). denode.h, msdosfs_denode.c: Remove the DE_UPDAT() macro. It was only used once, and the corresponding macro in ufs has already been removed. denode.h: Don't change the timestamp for directories in DE_TIMES() (be consistent with deupdat()). msdosfs_vnops.c: Handle chown() better: return EPERM instead of EINVAL if there are insufficient permissions; otherwise, allow null changes. Notes: svn path=/head/; revision=5241
* Fix numerous timestamp bugs.Bruce Evans1994-12-121-14/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DE_UPDATE was confused with DE_MODIFIED in some places (they do have confusing names). Handle them exactly the same as IN_UPDATE and IN_MODIFIED. This fixes chmod() and chown() clobbering the mtime and other bugs. DE_MODIFIED was set but not used. Parenthesize macro args. DE_TIMES() now takes a timeval arg instead of a timespec arg. It was stupid to use a macro for speed and do unused conversions to prepare for the macro. Restore the left shifting of the DOS seconds count by 1. It got lost among the shifts for the bitfields, so DOS seconds counts appeared to range from 0 to 29 seconds (step 1) instead of 0 to 58 seconds (step 2). Actually use the passed-in mtime in deupdat() as documented so that utimes() works. Change `extern __inline's to `static inline's so that msdosfs_fat.o can be linked when it is compiled without -O. Remove faking of directory mtimes to always be the current time. It's more surprising for directory mtimes to change when you read the directories than for them not to change when you write the directories. This should be controlled by a mount-time option if at all. Notes: svn path=/head/; revision=5083
* Restore mv check, cause panic without itAndrey A. Chernov1994-11-291-3/+1
| | | | | | | Submitted by: Ade Barkah Notes: svn path=/head/; revision=4868
* Fix from John Hay to avoid kernel panics when ap->a_eofflag is NULL.Jordan K. Hubbard1994-11-011-2/+3
| | | | | | | | | | I'm not sure if this is just masking another problem (like, should ap->a_eofflag EVER be NULL?), but if it prevents a panic for now then it may save an ALPHA customer. Submitted by: jhay Notes: svn path=/head/; revision=4057
* Set the EOF flag properly.Paul Traina1994-10-271-6/+6
| | | | | | | Obtained from: netbsd-bugs mailing list Notes: svn path=/head/; revision=3935
* Fixed panic when unmounting floppy msdos filesystems. Problem wasMartin Renters1994-10-231-7/+30
| | | | | | | we weren't flushing dirty buffers. Fix stolen from ffs_fsync() Notes: svn path=/head/; revision=3805
* Use tsleep() rather than sleep so that 'ps' is more informative aboutDavid Greenman1994-10-061-2/+2
| | | | | | | the wait. Notes: svn path=/head/; revision=3396
* Make NFS ask the filesystems for directory cookies instead of making themDoug Rabson1994-09-281-37/+37
| | | | | | | itself. Notes: svn path=/head/; revision=3167
* Added declarations, fixed bugs due to missing decls. At least one of themPoul-Henning Kamp1994-09-271-55/+67
| | | | | | | could panic a system. (I know, it paniced mine!). Notes: svn path=/head/; revision=3152
* Implemented loadable VFS modules, and made most existing filesystemsGarrett Wollman1994-09-211-1/+3
| | | | | | | loadable. (NFS is a notable exception.) Notes: svn path=/head/; revision=2946
* Added msdosfs.Doug Rabson1994-09-191-0/+1933
Obtained from: NetBSD Notes: svn path=/head/; revision=2893