Commit Graph

143 Commits

Author SHA1 Message Date
briggs 33a79483d0 Fix a panic that occurred when trying to traverse a corrupt msdosfs
filesystem.  With this particular corruption, the code in pcbmap()
would compute an offset into an array that was way out of bounds,
so check the bounds before trying to access and return an error if
the offset would be out of bounds.
2003-10-22 03:51:12 +00:00
hannken a3a898ff0f Add the gating of system calls that cause modifications to the underlying
file system.
The function vfs_write_suspend stops all new write operations to a file
system, allows any file system modifying system calls already in progress
to complete, then sync's the file system to disk and returns. The
function vfs_write_resume allows the suspended write operations to
complete.

From FreeBSD with slight modifications.

Approved by: Frank van der Linden <fvdl@netbsd.org>
2003-10-15 11:28:59 +00:00
dbj fe7c786886 add mnt_iflag field to struct mount for internal flags
mv MNT_GONE, MNT_UNMOUNT and MNT_WANTRDWR to this field
additonally add mnt_writeopcountupper and mnt_writeopcountlower fields
in preparation for pending write suspension support work
bump kernel version to 1.6ZD
2003-10-14 14:02:56 +00:00
lukem 2d6acee111 add bpbReserved fields 2003-10-08 04:11:43 +00:00
jdolecek 87f9bd7267 change accidentaly left debug printf to dprintf() 2003-10-06 16:47:10 +00:00
lukem 1ab040b9ee Consistently use "bsBPB" as the struct member for the BIOS parameter block. 2003-10-06 02:21:47 +00:00
yamt 589e82f2ba terminate snprintb 'new' format strings correctly.
(fixes overrun in mount_*)
2003-10-03 16:34:31 +00:00
itojun ce112dfc4f add -t option for gmt time offset (normally MS-DOS filesystem has timestamp
in localtime, not GMT).  PR kern/22717
2003-09-07 22:09:11 +00:00
jdolecek 4b005d1443 sprinkle __attribute__((__packed__)) to structures representing on-disk data
this hopefully fixes problem with reading filecore FS under i386, reported
on current-users@ (thread 'acorn32 disk on i386')
2003-09-06 13:56:42 +00:00
agc aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
jdolecek 28d75bbaf3 remove all traces of non-working quota support
add quota support to TODO - makes sense only once writing support
would be implemented, and only once NTFS would support notion of file 'owner'

adresses kern/21967 by Martin Husemann
2003-08-02 12:11:56 +00:00
jdolecek 62e0ed44c8 Allow separate masks for files and directories. Useful e.g. to turn
the execute bit off for files, but keep search permission for directories.
Change contributed in PR kern/21538 by Pavel Arnost, based on some FreeBSD
patches.
Further manpage changes, and backward-compatibility adjustments done by me.

Also fixes PR kern/16778 by Johan Danielsson, and PR kern/3400 by Rick Byers
2003-08-02 11:41:19 +00:00
rearnsha 03d5740677 Fix a build failure when NFSSERVER. Unconditionally define
filecore_lease_check to genfs_lease_check (was previously lease_check
which isn't defined anywhere).  No need to include opt_nfsserver.h
any more.
2003-07-06 17:52:08 +00:00
fvdl d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
thorpej d189d63466 Fix problems with the ktrace/lwp changes. 2003-06-29 18:53:52 +00:00
thorpej a06b275edc Undo part of the ktrace/lwp changes. In particular:
* Remove the "lwp *" argument that was added to vget().  Turns out
  that nothing actually used it!
* Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(),
  and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted
  above, didn't use it).
* Remove all of the "lwp *" arguments to internal functions that were added
  just to appease the above.
2003-06-29 18:43:21 +00:00
thorpej 7da140a1a2 Fix problems with Darren's ktrace/lwp changes. 2003-06-29 15:11:48 +00:00
martin b13abb2046 Fix a few small glitches (struct proc -> struct lwp) 2003-06-29 12:17:21 +00:00
darrenr 28c230cff5 More changes for providing lwpid for ktrace (sparc GENERIC built) 2003-06-29 09:56:29 +00:00
darrenr 960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
itojun 3b8a1d1f0c strlcpy 2003-06-26 05:26:45 +00:00
martin 864f19482a #ifdef _KERNEL_OPT police 2003-06-23 14:59:21 +00:00
martin 79b00c490a Disable QUOTA for ntfs - it's broken. 2003-06-23 11:53:47 +00:00
martin d505b18964 Make sure to include opt_foo.h if a defflag option FOO is used. 2003-06-23 11:00:59 +00:00
reinoud 0e1ab03bd7 Fix a botch in a boolean expression. Thanks to Martim Husemann for the fix
:)

PR kern/21816: Big DVD's with cd9660 fs (can) crash Alpha can be closed
allready :)
2003-06-07 12:00:07 +00:00
itojun 25b677f86d use strlcpy. check size if we are to use namei buffer. 2003-05-16 05:09:11 +00:00
christos 94f1b04361 fix a few missing malloc attach/detach. Now this works. 2003-04-24 07:50:19 +00:00
christos 77500fa37f forgot one malloc attach/detach 2003-04-22 17:23:47 +00:00
christos baf70d805d explicitly attach and detach malloc types like smbfs does; thanks jaromir. 2003-04-22 16:48:19 +00:00
christos 80ecd573c0 PR/1796: John Kohl: statfs misbehaves under chrooted environments.
- Under chroot it displays only the visible filesystems with appropriate paths.
- The statfs f_mntonname gets adjusted to contain the real path from root.
- While was there, fixed a bug in ext2fs, locking problems with vfs_getfsstat(),
  and factored out some of the vfsop statfs() code to copy_statfs_info(). This
  fixes the problem where some filesystems forgot to set fsid.
- Made coda look more like a normal fs.
2003-04-16 21:44:18 +00:00
jdolecek 39a063b681 back to genfs_eopnotsupp() for vop_remove, vop_link, vop_rename,
vop_mkdir, vop_rmdir - it does the right unlocking now
2003-04-10 21:57:26 +00:00
jdolecek b41f818f25 change some printf()s on easily-triggerable codepaths to dprintf() 2003-04-10 21:37:32 +00:00
jdolecek d135e24e2d fix couple more simple lock issues on smbfs_close() code path:
* vinvalbuf needs to be called without simplelocks held
* need to release the lock in opencount > 0 case
* need to release the lock before smbfs_findclose(), since that
  can send a request to SMB server and attempt to pool_get() a request buffer
problem path found & testing by Martin Husemann, fix adresses PR kern/21067
2003-04-09 18:57:29 +00:00
jdolecek 1f29707d43 move ntfs_remove() to be together with the other dummies - easier to c&p
eventually
2003-04-09 18:46:47 +00:00
jdolecek 6810b56243 add dummy link, rename, mkdir, rmdir vnode ops, which release the
appropriate vnodes before failing with EOPNOTSUPP - this is necessary
to not deadlock later
2003-04-09 18:41:05 +00:00
jdolecek 011c1952fd #if 0 some no longer used macros; keep around for refence 2003-04-09 16:18:56 +00:00
jdolecek af5ced0d31 replace VOP__UNLOCK(), VN_LOCK(), VGET() macros with the real thing, to
imporove readability
g/c some non-NetBSD code for same reason
2003-04-09 16:18:17 +00:00
jdolecek 81d7a920df print some potentially useful stuff in ntfs_print()
replace the VOP__UNLOCK() macros with VOP_UNLOCK() directly - it just
  obfuscates the code
similarily for VN_LOCK()->vn_lock()
unlock dvp before ntvattrget call in ntfs_lookup() in '..' case, not after
fix problem in ntfs_lookup() where PDIRUNLOCK was not set in one code path
  after unlocking parent directory vnode
2003-04-09 16:12:18 +00:00
jdolecek a0e0f99677 add real ntfs remove vnode op, which releases vnode locks on parent directory
and the file vnode before returning EOPNOTSUPP
fixes PR kern/19595 by Erik Berls
2003-04-09 16:02:18 +00:00
jdolecek 1ae0467918 back to passing magic '1' as lock id in smbfs_advlock() - the number
is used to setup a 'PID' for the lock; if a SMB write request is sent
to server, it returns EDEADLK if it doesn't have same PID. since we
use '1' as request PID (see smb_rq_new()), we must use '1' here too,
for now
add a comment what is the ID used for, to avoid similar mistake in future

this partially back off rev 1.5, and makes advisory locking work
on SMB shares mounted from Windows again (sigh)
2003-04-08 21:06:33 +00:00
jdolecek a66d80ca2a smbfs_remove(): undo broken condition change from rev. 1.3 - apparently
the condition was changed to be true when the file _should_ be removed,
but ended up wrong way

this fixes a problem where it wasn't possible to remove regular files
from mounted smbfs share
2003-04-08 19:01:00 +00:00
jdolecek 3068339e18 fix locking issues uncovered by LOCKDEBUG, reorganize code a bit so that
even the initial directory notify request is sent by smbkq thread
problems found during LOCKDEBUG hunt, adresses PR kern/21067 by Martin Husemann
2003-04-08 18:16:01 +00:00
jdolecek 9e423ce633 release the vnode interlock sooner in smbfs_close[l](), before calling
smbfs_smb_close() - that routine allocates memory and could sleep
problem found with LOCKDEBUG, change adresses PR kern/21067 by Martin Husemann

g/c unneeded VOP_GETATTR() call from smbfs_closel()
2003-04-08 17:09:22 +00:00
jdolecek 293074e648 attach/detach also malloc type M_SMBFSHASH ('oops') 2003-04-08 16:26:31 +00:00
jdolecek 1cd92a1660 use pools instead of malloc(9) for allocation of smb request structures
convert all code to use smb_{rq|t2}_alloc() instead of allocating
structures on stack, make smb_rq_init()/smb_t2_init() static and not
exported outside smb_rq.c
2003-04-07 19:35:39 +00:00
jdolecek e9a8600833 smbfs_closel(): fix inverted test in directory case 2003-04-07 19:31:01 +00:00
jdolecek e9680c83fc add TNF copyright licence for recent changes 2003-04-07 13:56:13 +00:00
jdolecek 7dbdaa2a4e smbfs_open(): reenable code mistakely #if 0'd in previous revision, make
sure it's only skipped in 'directory' case
2003-04-07 12:21:40 +00:00
jdolecek db1373faf6 g/c smbfs_kqinit() prototype, it is no more 2003-04-07 12:04:40 +00:00
jdolecek c0fd3735dc use NT DIRECTORY CHANGE NOTIFY to watch for directory kevents if the
server supports it
for this, need NT CREATE AND X a directory in smbfs_open(), so that
we get the FID handle used for DIRECTORY CHANGE NOTIFY SMB

this could eventually be used to 'watch' even regular files, by
watching its parent directory and lookup/VN_KNOTE() when we get
REMOVED/RENAMED/MODIFIED action

also reorganize the kqueue code somewhat to use simplify locking
and knote detach
2003-04-07 12:04:15 +00:00