| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
non-maskable).
- The NFS client needs to guard against spurious wakeups
while waiting for the response. ltrace causes the process
under question to wakeup (possibly from ptrace()), which
causes NFS to wakeup from tsleep without the response being
delivered.
Submitted by: Mohan Srinivasan
Notes:
svn path=/head/; revision=144040
|
| |
|
|
|
|
|
|
|
| |
reflect reality.
Submitted by: Mohan Srinivasan
Notes:
svn path=/head/; revision=142568
|
| |
|
|
|
|
|
|
|
| |
base context as well as the socket callback.
Submitted by: Mohan Srinivasan
Notes:
svn path=/head/; revision=142070
|
| |
|
|
| |
Notes:
svn path=/head/; revision=139823
|
| |
|
|
|
|
|
|
|
|
|
| |
and if the client (erroneously) reads the RPC length as 0 bytes, the
client can loop around in the socket callback. Explicitly check for
the length being 0 case and teardown/re-connect.
Submitted by: Mohan Srinivasan
Notes:
svn path=/head/; revision=139744
|
| |
|
|
|
|
|
|
|
| |
to close all potential cases of missed wakeups.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
Notes:
svn path=/head/; revision=138505
|
| |
|
|
|
|
|
|
|
|
|
| |
upcalls which do RPC header parsing and match up the reply with the
request. NFS calls now sleep on the nfsreq structure. This enables
us to eliminate the NFS recvlock.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
Notes:
svn path=/head/; revision=138496
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
send routine. In IPv6 UDP, the thread will be passed to suser(), which
asserts that if a thread is used for a super user check, it be
curthread. Many of these protocol entry points probably need to
accept credentials instead of threads.
MT5 candidate.
Noticed/tested by: kuriyama
Notes:
svn path=/head/; revision=134281
|
| |
|
|
|
|
|
|
|
| |
to be returned from the protocol stack.
Pointy hat to me for not groking what those options _really_ mean.
Notes:
svn path=/head/; revision=132084
|
| |
|
|
|
|
|
|
|
|
|
| |
a better name. I have a kern_[sg]etsockopt which I plan to commit
shortly, but the arguments to these function will be quite different
from so_setsockopt.
Approved by: alfred
Notes:
svn path=/head/; revision=132060
|
| |
|
|
|
|
|
|
|
|
| |
Tune the timeout from 5 seconds to 12 seconds.
Provide a sysctl to show how many reconnects the NFS client has done.
Seems to fix IPv6 from: kuriyama
Notes:
svn path=/head/; revision=132018
|
| |
|
|
|
|
|
| |
socket state and avoid missed wakeups.
Notes:
svn path=/head/; revision=131717
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rebind the client socket when we experience a timeout. This fixes
the case where our IP changes for some reason.
Signal a VFS event when NFS transitions from up to down and vice
versa.
Add a placeholder vfs_sysctl where we will put status reporting
shortly.
Also:
Make down NFS mounts return EIO instead of EINTR when there is a
soft timeout or force unmount in progress.
Notes:
svn path=/head/; revision=131691
|
| |
|
|
|
|
|
| |
races.
Notes:
svn path=/head/; revision=131021
|
| |
|
|
|
|
|
|
| |
protect socket operations. Leave one "as-is" as it also frobs
rootvp.
Notes:
svn path=/head/; revision=130554
|
| |
|
|
|
|
|
|
|
|
| |
license, per letter dated July 22, 1999 and email from Peter Wemm,
Alan Cox and Robert Watson.
Approved by: core, peter, alc, rwatson
Notes:
svn path=/head/; revision=127977
|
| |
|
|
| |
Notes:
svn path=/head/; revision=127857
|
| |
|
|
|
|
|
|
|
|
|
|
| |
are supposed to continue firing as long as there is work to do, not
stop after the first invocation.
This is damage control after a patch that has been committed prematurely.
Tested by: kris
Notes:
svn path=/head/; revision=127515
|
| |
|
|
|
|
|
|
| |
Submitted by: kan
Approved by: alfred
Notes:
svn path=/head/; revision=127421
|
| |
|
|
|
|
|
|
|
| |
nfs sockets.
Requested by: ru
Notes:
svn path=/head/; revision=127144
|
| |
|
|
|
|
|
|
|
| |
mounts which will be closed by netapp, solaris, etc. if left idle too long.
Obtained from: NetBSD
Notes:
svn path=/head/; revision=127137
|
| |
|
|
|
|
|
| |
Submitted by: Jim Rees <rees@umich.edu>
Notes:
svn path=/head/; revision=122698
|
| |
|
|
|
|
|
|
|
|
| |
preparatory for MPSAFE network commits and ongoing socket
locking work.
Supported by: FreeBSD Foundation
Notes:
svn path=/head/; revision=122261
|
| |
|
|
|
|
|
| |
Pointed out by: pete@isilon.com
Notes:
svn path=/head/; revision=120755
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Move struct sigacts out of the u-area and malloc() it using the
M_SUBPROC malloc bucket.
- Add a small sigacts_*() API for managing sigacts structures: sigacts_alloc(),
sigacts_free(), sigacts_copy(), sigacts_share(), and sigacts_shared().
- Remove the p_sigignore, p_sigacts, and p_sigcatch macros.
- Add a mutex to struct sigacts that protects all the members of the struct.
- Add sigacts locking.
- Remove Giant from nosys(), kill(), killpg(), and kern_sigaction() now
that sigacts is locked.
- Several in-kernel functions such as psignal(), tdsignal(), trapsignal(),
and thread_stopped() are now MP safe.
Reviewed by: arch@
Approved by: re (rwatson)
Notes:
svn path=/head/; revision=114983
|
| |
|
|
|
|
|
|
|
|
| |
a follow on commit to kern_sig.c
- signotify() now operates on a thread since unmasked pending signals are
stored in the thread.
- PS_NEEDSIGCHK moves to TDF_NEEDSIGCHK.
Notes:
svn path=/head/; revision=112888
|
| |
|
|
|
|
|
| |
Sponsored by: RED
Notes:
svn path=/head/; revision=112657
|
| |
|
|
| |
Notes:
svn path=/head/; revision=111748
|
| |
|
|
|
|
|
| |
Approved by: trb
Notes:
svn path=/head/; revision=111119
|
| |
|
|
| |
Notes:
svn path=/head/; revision=111105
|
| |
|
|
|
|
|
| |
in nfs_sigintr().
Notes:
svn path=/head/; revision=110922
|
| |
|
|
|
|
|
| |
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
Notes:
svn path=/head/; revision=109623
|
| |
|
|
|
|
|
| |
Requested by: rwatson, phk, and many others
Notes:
svn path=/head/; revision=104306
|
| |
|
|
|
|
|
| |
Submitted by: jhb
Notes:
svn path=/head/; revision=104241
|
| |
|
|
|
|
|
|
|
| |
prototyped functions to get a sigset_t, and further to check for any
queued signals, rather than an empty signal set, to go with the move
to signal queues rather than signal sets.
Notes:
svn path=/head/; revision=104235
|
| |
|
|
| |
Notes:
svn path=/head/; revision=103554
|
| |
|
|
|
|
|
| |
of a private cached copy.
Notes:
svn path=/head/; revision=103099
|
| |
|
|
|
|
|
|
|
|
|
|
| |
obtain the send lock, we would bogusly try to unlock the send lock before
returning resulting in a panic. Instead, only unlock the send lock if
nfs_sndlock() succeeds and nfs_reconnect() fails.
MFC after: 3 days
Sponsored by: The Weather Channel
Notes:
svn path=/head/; revision=100175
|
| |
|
|
|
|
|
| |
Submitted by: Jean-Luc Richier <Jean-Luc.Richier@imag.fr>
Notes:
svn path=/head/; revision=100134
|
| |
|
|
|
|
|
|
| |
PR: kern/40360
Requested by: Hiten PAndya via direct email
Notes:
svn path=/head/; revision=99797
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nfs_readlink() calls nfs_bioread() which passes in uio_td as the thread
argument to nfs_getcacheblk(). In nfs_getcacheblk() we dereference the
thread pointer to get a process pointer to pass to nfs_sigintr(). This
obviously results in a panic. :)
Rather than change nfs_getcacheblk() to check if the thread pointer is
NULL when calling nfs_sigintr() like other callers do, change
nfs_sigintr() to take a thread as the last argument instead of a
process so none of the callers have to care if the thread is NULL or not.
Notes:
svn path=/head/; revision=98988
|
| |
|
|
|
|
|
| |
Requested by: hsu
Notes:
svn path=/head/; revision=97658
|
| |
|
|
| |
Notes:
svn path=/head/; revision=97333
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Add a mutex (sb_mtx) to struct sockbuf. This protects the data in a
socket buffer. The mutex in the receive buffer also protects the data
in struct socket.
o Determine the lock strategy for each members in struct socket.
o Lock down the following members:
- so_count
- so_options
- so_linger
- so_state
o Remove *_locked() socket APIs. Make the following socket APIs
touching the members above now require a locked socket:
- sodisconnect()
- soisconnected()
- soisconnecting()
- soisdisconnected()
- soisdisconnecting()
- sofree()
- soref()
- sorele()
- sorwakeup()
- sotryfree()
- sowakeup()
- sowwakeup()
Reviewed by: alfred
Notes:
svn path=/head/; revision=96972
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
where some client operations might be unexpectedly cancelled during
an unsuccessful non-forced unmount attempt. This causes problems
for amd(8), because it periodically attempts a non-forced unmount
to check if the filesystem is still in use.
Fix this by adding a new mountpoint flag MNTK_UNMOUNTF that is set
only during the operation of a forced unmount. Use this instead of
MNTK_UNMOUNT to trigger the cancellation of hung NFS operations.
Also correct a problem where dounmount() might inadvertently clear
the MNTK_UNMOUNT flag.
Reported by: simokawa
MFC after: 1 week
Notes:
svn path=/head/; revision=94903
|
| |
|
|
|
|
|
| |
commit)
Notes:
svn path=/head/; revision=90373
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
this is a low-functionality change that changes the kernel to access the main
thread of a process via the linked list of threads rather than
assuming that it is embedded in the process. It IS still embeded there
but remove all teh code that assumes that in preparation for the next commit
which will actually move it out.
Reviewed by: peter@freebsd.org, gallatin@cs.duke.edu, benno rice,
Notes:
svn path=/head/; revision=90361
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
process of being unmounted. This allows forced NFS unmounts to
complete even if there are processes stuck holding the mnt_lock
while the server is down. The mechanism is not ideal in that there
is a small chance we might accidentally cancel requests during a
failed non-forced unmount attempt on that filesystem, but this
is not really a big problem.
Also, move the tsleep() in nfs_nmcancelreqs() so that we do not
sleep in the case where there are no requests to be cancelled.
Notes:
svn path=/head/; revision=89174
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
down, even if there are hung processes and the mount is non-
interruptible.
This works by having nfs_unmount call a new function nfs_nmcancelreqs()
in the FORCECLOSE case. It scans the list of outstanding requests
and marks as interrupted any requests belonging to the specified
mount. Then it waits up to 30 seconds for all requests to terminate.
A few other changes are necessary to support this:
- Unconditionally set a socket timeout so that even hard mounts
are guaranteed to occasionally check the R_SOFTTERM flag on
requests. For hard mounts this flag can only be set by
nfs_nmcancelreqs().
- Reject requests on a mount that is currently being unmounted.
- Never grant the receive lock to a request that has been cancelled.
This should also avoid an old problem where a forced NFS unmount
could cause a crash; it occurred when a VOP on an unlocked vnode
(usually VOP_GETATTR) was in progress at the time of the forced
unmount.
Notes:
svn path=/head/; revision=88796
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
socreate(), rather than getting it implicitly from the thread
argument.
o Make NFS cache the credential provided at mount-time, and use
the cached credential (nfsmount->nm_cred) when making calls to
socreate() on initially connecting, or reconnecting the socket.
This fixes bugs involving NFS over TCP and ipfw uid/gid rules, as well
as bugs involving NFS and mandatory access control implementations.
Reviewed by: freebsd-arch
Notes:
svn path=/head/; revision=88739
|