Commit Graph

495 Commits

Author SHA1 Message Date
fvdl 0cc3c4a023 Suppress another case of a potentially noisy error message which
isn't fatal.
2001-05-09 20:02:32 +00:00
fvdl bf714cf896 Drop vnode lock before removing the sillyrename file, to avoid a
lock-o-death.
2001-05-03 15:53:04 +00:00
bjh21 1ca2839e35 When NFS_V2_ONLY is defined, refuse to mount NFSv3 and NQNFS filesystems,
rather than pretending they're NFSv2 and hoping for the best.  Fix based on
that supplied by Christian Groessler.
2001-04-28 16:11:47 +00:00
bjh21 4442920f51 In nfs_loadattrcache(), if checkalias() gives us a new vnode, lock it. This
prevents us losing the locked state of the old vnode.

fvdl thinks the old vnode is certain to be locked at this point.  I've put in
a KASSERT to be on the safe side.

This seems to fix PR kern/12661.
2001-04-21 21:35:53 +00:00
fvdl 9dc4bbb990 Don't forget to unlock the vnode returned by cache_lookup if the
subsequent access check fails. Don't overwrite the error code
returned by cache_lookup. Remove a piece of redundant code.

Should fix kern/12680.
2001-04-20 11:22:02 +00:00
fvdl a4c70394dc On VOP_GETATTR failure in nfs_nget, call vgone() to get rid
of the vnode that was just created. Suggested by Enami.
2001-04-20 11:19:16 +00:00
fvdl e5a7af16e9 Unlock the hash lock before returning an error in nfs_nget.
From IWAMOTO Toshihiro.
2001-04-20 07:58:04 +00:00
thorpej 5b35dc8136 When unmounting a file system, acquire the syncer_lock before
vfs_busy'ing just before the dounmount() call.  This is to avoid
sleeping with the mountlist_slock held -- but we must acquire
syncer_lock before vfs_busy because the syncer itself uses
syncer_lock -> vfs_busy locking order.
2001-04-16 22:41:09 +00:00
chs 88c05e77fe reads at or after EOF should "succeed". 2001-04-16 14:37:43 +00:00
chs e7a221b78f remove a temporary hack now that it's fixed for real. fixes PR 11731. 2001-04-03 15:08:38 +00:00
chs d8ed86a474 handle partially full directory buffers by only using (b_bcount - b_resid)
bytes of data from the buffer.
2001-04-03 15:07:23 +00:00
fvdl 8ec4ee98dd Set default NFS read and write sizes back to 8k, because a lot of
(old) hardware can't handle more.
2001-04-02 11:47:23 +00:00
matt 0abec5d217 Allow the default NFS_RSIZE and NFS_WSIZE to be overriden. 2001-03-25 02:22:30 +00:00
fvdl ad5dcb280f Same change as in the UFS code: unlock vnode before setting v_op
to spec_vnode_ops. From Bill Studenmund.
2001-03-23 21:10:48 +00:00
chs dd82ad8e2c eliminate the VM_PAGER_* error codes in favor of the traditional E* codes.
the mapping is:

VM_PAGER_OK		        0
VM_PAGER_BAD		        <unused>
VM_PAGER_FAIL		        <unused>
VM_PAGER_PEND		        0 (see below)
VM_PAGER_ERROR		        EIO
VM_PAGER_AGAIN		        EAGAIN
VM_PAGER_UNLOCK		        EBUSY
VM_PAGER_REFAULT	        ERESTART

for async i/o requests, it used to be possible for the request to
be convert to sync, and the pager would return VM_PAGER_OK or VM_PAGER_PEND
to indicate whether the caller should perform post-i/o cleanup.
this is no longer allowed; pagers must now return 0 to indicate that
the async i/o was successfully started, and the caller never needs to
worry about doing the post-i/o cleanup.
2001-03-10 22:46:45 +00:00
chs 060e70db41 min() -> MIN(), max() -> MAX().
fixes more problems with file offsets > 4GB.
2001-02-27 04:37:44 +00:00
jdolecek 522f569810 make some more constant arrays 'const' 2001-02-21 21:39:52 +00:00
chs f6370c7a84 fix a couple more bugs:
- in nfs_getpages(), unbusy any pages that we don't free in the error path.
 - in nfs_putpages(), only call biowait() if we actually started any i/os.
2001-02-18 15:52:32 +00:00
fvdl 4c9b670931 Fix some possible locking errors in nfs_namei (XXX this function should die) 2001-02-14 15:36:45 +00:00
fvdl a008ea27c9 Instead of storing the filehandle in the mount structure, store the
vnode pointer. This avoids a locking problem with nfs_nget, and
can be done because we always have a reference on the root vnode
of the filesystem.
2001-02-12 20:02:30 +00:00
enami 6b949f72fb Unlock the rename target vnode after sillyrename'ing it. 2001-02-11 01:09:04 +00:00
tsutsui ec8b1c000e Fix nested extern declaration of prtactive. 2001-02-07 12:40:43 +00:00
fvdl c18aae5b9f In nfs_inactive there's no need anymore for an extra refcount around
nfs_vinvalbuf, since it has a real lock on the vnode now, so getnewvnode
will not hijack it.
2001-02-06 16:25:48 +00:00
fvdl 9f39c3a967 Get locking in rmdir right. Don't unlock a vnode when passing its
associated nfsnode to nfs_lookitup, it is not needed, and fixes
nfs_remove.
2001-02-06 15:26:25 +00:00
fvdl d4e6a2c4e1 Do actual vnode locking for NFS. 2001-02-06 11:40:02 +00:00
chs 5706160195 fix several bugs:
- in the cases where we skip over the i/o loop, increment npages by ridx
   so that when the cleanup code starts processing the pgs array at index 0
   it'll actually process all of the pages.
 - process the PG_RELEASED flag when unbusying pages.
 - add some missing MP locking.
 - use MIN() and MAX() instead of min() and max() since the latter are
   functions which take arguments of type "int" but we call them with
   values of type "off_t", so the values could be truncated.
2001-02-05 12:27:18 +00:00
thorpej e4dc9e322e Make sure bp->b_proc is initialized. Should fix a deref-garbage-pointer
problem reported by msaitoh@netbsd.org.  NOTE: These are marked XXXUBC
since the code that allocates the bufs is new with UBC, but it may be
the case that bp->b_proc needs to be intialized to curproc (it's used
in a call to nfs_sigintr()).
2001-01-30 03:47:11 +00:00
jdolecek d9466585b7 make filesystem vnodeop, specop, fifoop and vnodeopv_* arrays const 2001-01-22 12:17:35 +00:00
enami 07c60191e7 Use tsleep instead of dalay; since we're mounting root, we can sleep
and no reason to use delay.
2001-01-19 14:26:01 +00:00
jdolecek 34c8ae80da constify 2001-01-18 20:28:15 +00:00
enami 744c012068 Use uvm_aio_biodone instead of uvm_aio_aiodone for top-level buf
so that uvmexp.paging is updated if this i/o was initiated by
the pagedaemon.
2001-01-07 05:54:41 +00:00
jdolecek 7ec49a1f35 update commented out code to recent changes of signal structures 2000-12-27 22:01:43 +00:00
bjh21 47d4a4d009 Extra diagnostic assertion: subtle pmap bugs can ultimately lead to trying
to use NULL credentials for NFS ops, so spot them before we dereference them.
2000-12-27 16:35:37 +00:00
chs 4e7404469d fix several bugs:
- fix math when skipping writing pages that just need a commit.
 - clear the needcommit stuff and PG_RDONLY flags on pages returned for
   overwrite requests as well as for normal write faults.
 - bail out of nfs_write() if we get an error.
 - remove a bogus attempt to clean up after failed uiomove()s.
 - bring over a workaround for a lock-ordering problem from the genfs code.
 - add some missing MP locking.
2000-12-27 05:15:43 +00:00
jdolecek c2cfcae955 <sys/trace.h> is not needed here 2000-12-13 18:15:56 +00:00
chs 395f8c2177 initialize read creds in nfs_open() too. 2000-12-12 17:13:17 +00:00
fvdl 405b695086 Make sobind() take a struct proc *. It already took curproc and
passed it down to the appropriate usrreq function, and this
allows usage for contexts that need to be explicitly different
from curproc (like in the NFS code when binding to a reserved port).
2000-12-10 23:16:28 +00:00
chs 3a5e4f901b in *_sync(), don't skip vnodes which have (potentially dirty) pages. 2000-12-10 19:36:31 +00:00
chs f5878a3362 only zero the part of the page after EOF if we're actually
initializing the page.
2000-12-09 22:38:23 +00:00
drochner 8f6e088214 add a kernel configuration option to set the string passed in bp_file
in diskless BOOTP/DHCP configuration - good for booting different
userland versions depending on the kernel version
2000-12-05 17:59:43 +00:00
fvdl a0aebb0c36 Initialize 'error' to 0, so that nfs_putpages doesn't return garbage
when pages already have been committed and nothing needs to be done.
2000-12-04 12:12:20 +00:00
chs d324e2eb55 in nfs_open(), initialize the write creds if we're opening for writing.
otherwise we would never set them if we only modify the file via mmap().
2000-11-30 07:24:12 +00:00
chs aeda8d3b77 Initial integration of the Unified Buffer Cache project. 2000-11-27 08:39:39 +00:00
chs 8362134916 put more ISO bits under ifdef ISO. 2000-11-24 23:30:02 +00:00
ad 642267bcc7 Update for hashinit() change. 2000-11-08 14:28:12 +00:00
chs 51c256aa5a in nfs_flush(), only play games with B_NOCACHE for VREG vnodes.
if we do this for VBLK vnodes which are in use by softdep mounts,
brelse() will mark the buffer B_INVAL as well, which makes the
softdep code very unhappy.
2000-11-08 05:20:32 +00:00
fvdl dcf7889500 Do not accept vnode type changes to an active node. This may wreak
havoc if the server erroneously uses the same filehandle for
different files. This changes back revision 1.28; the PR that
that revision fixed doesn't apply anymore, it has been verified
not to be a problem with this change.
2000-10-24 12:02:04 +00:00
matt 04f534474c Change a DIAGNOSTIC panic slightly to print the locked vnodes and to just
print a diagnostic but not panic.
2000-10-24 07:08:48 +00:00
chs be0d1c56f1 fix nfs iod management so we don't lose i/os when iods die. 2000-10-23 07:18:27 +00:00
chs 65ab1f3650 include opt_inet.h, needed by previous check-in. 2000-10-03 17:18:15 +00:00