summaryrefslogtreecommitdiffstats
path: root/sys/nfs4client
Commit message (Collapse)AuthorAgeFilesLines
* Make VFS_ROOT() and vflush() take a thread argument.alfred2004-07-121-3/+3
| | | | | | This is to allow filesystems to decide based on the passed thread which vnode to return. Several filesystems used curthread, they now use the passed thread.
* Change the following environment variables to kernel options:brian2004-07-081-0/+1
| | | | | | | | | | | | | bootp -> BOOTP bootp.nfsroot -> BOOTP_NFSROOT bootp.nfsv3 -> BOOTP_NFSV3 bootp.compat -> BOOTP_COMPAT bootp.wired_to -> BOOTP_WIRED_TO - i.e. back out the previous commit. It's already possible to pxeboot(8) with a GENERIC kernel. Pointed out by: dwmalone
* Change the following kernel options to environment variables:brian2004-07-081-1/+0
| | | | | | | | | | | | | | | | | | BOOTP -> bootp BOOTP_NFSROOT -> bootp.nfsroot BOOTP_NFSV3 -> bootp.nfsv3 BOOTP_COMPAT -> bootp.compat BOOTP_WIRED_TO -> bootp.wired_to This lets you PXE boot with a GENERIC kernel by putting this sort of thing in loader.conf: bootp="YES" bootp.nfsroot="YES" bootp.nfsv3="YES" bootp.wired_to="bge1" or even setting the variables manually from the OK prompt.
* When we traverse the vnodes on a mountpoint we need to look out forphk2004-07-041-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | our cached 'next vnode' being removed from this mountpoint. If we find that it was recycled, we restart our traversal from the start of the list. Code to do that is in all local disk filesystems (and a few other places) and looks roughly like this: MNT_ILOCK(mp); loop: for (vp = TAILQ_FIRST(&mp...); (vp = nvp) != NULL; nvp = TAILQ_NEXT(vp,...)) { if (vp->v_mount != mp) goto loop; MNT_IUNLOCK(mp); ... MNT_ILOCK(mp); } MNT_IUNLOCK(mp); The code which takes vnodes off a mountpoint looks like this: MNT_ILOCK(vp->v_mount); ... TAILQ_REMOVE(&vp->v_mount->mnt_nvnodelist, vp, v_nmntvnodes); ... MNT_IUNLOCK(vp->v_mount); ... vp->v_mount = something; (Take a moment and try to spot the locking error before you read on.) On a SMP system, one CPU could have removed nvp from our mountlist but not yet gotten to assign a new value to vp->v_mount while another CPU simultaneously get to the top of the traversal loop where it finds that (vp->v_mount != mp) is not true despite the fact that the vnode has indeed been removed from our mountpoint. Fix: Introduce the macro MNT_VNODE_FOREACH() to traverse the list of vnodes on a mountpoint while taking into account that vnodes may be removed from the list as we go. This saves approx 65 lines of duplicated code. Split the insmntque() which potentially moves a vnode from one mount point to another into delmntque() and insmntque() which does just what the names say. Fix delmntque() to set vp->v_mount to NULL while holding the mountpoint lock.
* Second half of the dev_t cleanup.phk2004-06-171-1/+1
| | | | | | | | | | | The big lines are: NODEV -> NULL NOUDEV -> NODEV udev_t -> dev_t udev2dev() -> findcdev() Various minor adjustments including handling of userland access to kernel space struct cdev etc.
* Do the dreaded s/dev_t/struct cdev */phk2004-06-161-5/+5
| | | | Bump __FreeBSD_version accordingly.
* Remove advertising clause from University of California Regent'simp2004-04-073-12/+0
| | | | | | | license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson. Approved by: core, peter, alc, rwatson
* fix for 64-bit arch:rees2004-03-261-1/+1
| | | | | | | use %zd to print size_t types and sizeof() Approved by: alfred Tested on: sparc64, amd64
* Properly vector all bwrite() and BUF_WRITE() calls through the same pathphk2004-03-111-1/+1
| | | | and s/BUF_WRITE()/bwrite()/ since it now does the same as bwrite().
* kthread_exit() no longer requires Giant, so don't force callers to acquirejhb2004-03-051-0/+1
| | | | | | Giant just to call kthread_exit(). Requested by: many
* NFSv4 fixes from Connectathon 2004:rees2004-02-274-111/+94
| | | | | | | | | | | | remove unused pid field of file context struct map nfs4 error codes to errnos eliminate redundant code from nfs4_request use zero stateid on setattr that doesn't set file size use same clientid on all mounts until reboot invalidate dirty bufs in nfs4_close, to play it safe open file for writing if truncating and it's not already open Approved by: alfred
* protect new cdevsw entries with "#if (__FreeBSD_version > 502102)"rees2004-02-221-1/+3
|
* in idmap_uid_to_name(), don't try to use the entry after freeing it, in therees2004-02-211-11/+7
| | | | | | | | idmap_add failure case (found by Ted Unangst via Colin Percival) also convert idmap_hashf to return void, since it can't fail also change some panics to error returns
* ask for rdattr_err in readdir, so we won't fail the readdir if we can't getrees2004-02-211-21/+27
| | | | attrs on one or more entries
* Device megapatch 4/6:phk2004-02-211-0/+2
| | | | | | | | Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION. Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
* whitespace changes only (prepare for merge from citi tree)rees2004-02-201-52/+51
|
* Use consistent style for cdevsw initializationphk2004-02-141-5/+5
|
* Use automatic major number allocation for the nfs4 device instead oftjr2004-02-111-3/+1
| | | | stealing #29, which is already reserved for mcd.
* This patch fixes two little portability (to !GCC compilers) problems:alfred2003-12-111-3/+3
| | | | | | | | 1. Use C99-style variable argument macros rather than GNU ones. 2. Don't cast id to ident_t. Its type is already ident_t and casting to a union type is a constraint violation. Submitted by: Stefan Farfeleder <stefan@fafoe.narf.at>
* Use function pointers to remove the depenancy cross dependancy on nfs4alfred2003-11-221-79/+10
| | | | | | | | and the nfs3 client. Also fix some bugs that happen to be causing crashes in both v3 and v4 introduced by the v4 import. Submitted by: Jim Rees <rees@umich.edu> Approved by: re
* Fix compliation on sparc64.alfred2003-11-151-1/+2
| | | | Change arg from uint32_t to size_t to match prototypes.
* unbreak LINT.alfred2003-11-151-4/+0
|
* University of Michigan's Citi NFSv4 kernel client code.alfred2003-11-1414-0/+8121
Submitted by: Jim Rees <rees@umich.edu>
OpenPOWER on IntegriCloud