summaryrefslogtreecommitdiffstats
path: root/sys/nfs (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* If the v_type is going to change when loading the NFS attribute cache,jsing2013-11-271-1/+2
| | | | | | | | | purge the vnode from the namecache first. This prevents cache_purge() from later getting confused and trying to cache_zap() a namecache entry multiple times over, due to cache_zap() believing that the entry does not need to be removed from the vnode destinations queue. ok beck@
* grow NFS request cache for the server side from 64 to 2048 entries.beck2013-11-261-2/+2
| | | | | | | | | | FreeBSD did the corresponding change a while ago - the server request cache is used to avoid giving unnecessary failures to clients when a request is completed server side, but the client does not receive the result and therefore retries the request. This avoids errors like "file already exists" when the client tries to create files on a busy NFS server. ok krw@, tedu@, dcoppa@, deraadt@
* Replace most of our formating functions to convert IPv4/6 addresses frommpi2013-11-112-7/+12
| | | | | | | | network to presentation format to inet_ntop(). The few remaining functions will be soon converted. ok mikeb@, deraadt@ and moral support from henning@
* Fix bogus kthread_create() usage leading to wrong struct proc * pointermiod2013-11-032-10/+5
| | | | | usage in the nfs kthreads. Spotted by fgsch@, similar diff by guenther@, ok guenther@
* The header file netinet/in_var.h included netinet6/in6_var.h. Thisbluhm2013-10-171-2/+1
| | | | | | | created a bunch of useless dependencies. Remove this implicit inclusion and do an explicit #include <netinet6/in6_var.h> when it is needed. OK mpi@ henning@
* format string fix: int64_tsf2013-10-021-2/+2
|
* Add support for root on nfs using v3. Code adapted from NetBSD.fgsch2013-09-203-52/+88
| | | | | Tested on sparc by miod, octeon by aalm and armv7 by me. miod ok.
* Correct the handling of I/O of >=2^32 bytes and the ktracing there ofguenther2013-09-141-2/+2
| | | | | | by using size_t/ssize_t instead of int/u_int to handle I/O lengths in uiomove(), vn_fsizechk(), and ktrgenio(). Eliminate the always-zero 'error' argument to ktrgenio() at the same time.
* Snapshots for all archs have been built, so remove the T32 codeguenther2013-09-141-42/+9
|
* typo; Eivind Evensenderaadt2013-09-121-2/+2
|
* Manipulate timevals seperately, not inside a mbuf. Alignment constraintsderaadt2013-08-271-6/+6
| | | | | miod ran into. ok miod matthew
* Switch time_t, ino_t, clock_t, and struct kevent's ident and dataguenther2013-08-134-128/+96
| | | | | | | | | | | | | | | | | | | | members to 64bit types. Assign new syscall numbers for (almost all) the syscalls that involve the affected types, including anything with time_t, timeval, itimerval, timespec, rusage, dirent, stat, or kevent arguments. Add a d_off member to struct dirent and replace getdirentries() with getdents(), thus immensely simplifying and accelerating telldir/seekdir. Build perl with -DBIG_TIME. Bump the major on every single base library: the compat bits included here are only good enough to make the transition; the T32 compat option will be burned as soon as we've reached the new world are are happy with the snapshots for all architectures. DANGER: ABI incompatibility. Updating to this kernel requires extra work or you won't be able to login: install a snapshot instead. Much assistance in fixing userland issues from deraadt@ and tedu@ and build assistance from todd@ and otto@
* format string fixes: size_t and signednesssf2013-07-041-4/+4
| | | | ok bluhm@
* When we remove work from the nfs queue, wake up people waiting forbeck2013-06-251-2/+2
| | | | | | | | room to queue IO right away, rather than waiting for us to complete the IO we are working on and potentially do a many buffers DELWRI dance before waking up the sleepers so they can continue. ok guether@ tedu@
* final removal of daddr64_t. daddr_t has been 64 bit for a long enoughderaadt2013-06-112-6/+6
| | | | | test period; i think 3 years ago the last bugs fell out. ok otto beck others
* Convert some internal APIs to use timespecs instead of timevalsguenther2013-06-031-3/+3
| | | | ok matthew@ deraadt@
* Use %lld for printing time_tguenther2013-05-311-3/+3
|
* Use SIOCAIFADDR rather than SIOCSIFADDR to set the address.mpi2013-05-221-4/+8
| | | | ok mikeb@, claudio@
* Unbreak and cleanup diskless swap automount.florian2013-04-172-21/+19
| | | | | | | | | | | | | Initial diff to replace unclear short variable name "nd" by "nfs_diskless" and to display the real nfs path to swap in pstat -s by deraadt@ Testing by me revealed diskless swap automount was broken since some time. Fix this by passing and using the correct vnode in nfs_diskless to swapmount(). Lots of input / help deraadt@, tweaks by deraadt@ OK deraadt@
* Add an f_mntfromspec member to struct statfs, which specifies the name ofjsing2013-04-151-2/+3
| | | | | | | | | | | | | the special provided when the mount was requested. This may be the same as the special that was actually used for the mount (e.g. in the case of a device node) or it may be different (e.g. in the case of a DUID). Whilst here, change f_ctime to a 64 bit type and remove the pointless f_spare members. Compatibility goo courtesy of guenther@ ok krw@ millert@
* Add support for _PC_TIMESTAMP_RESOLUTION for ffs/mfs, cd9600, ext2,guenther2013-03-281-1/+4
| | | | | | | msdos, NFS, fifos and devices, plus support for querying it in getconf(2) and the requisite pathconf(2) manpage blurb ok tedu@
* add a comment that we are faking it until code to ask the server is written.tedu2013-03-281-1/+3
| | | | requested by deraadt
* a better try at pathconf for nfs. there may be lies, but they are bettertedu2013-03-281-7/+47
| | | | lies than EINVAL, until we can uncover the truth.
* rename NCHNAMLEN to NAMECACHE_MAXLEN. easier to read, easier to type.tedu2013-03-271-2/+3
| | | | ok beck deraadt after a style issue noticed by kettenis
* do not expose NETDEV to userland from param.hderaadt2013-01-161-1/+2
|
* Ensure NFS will only consume up to 1/4 of the available bufferbeck2012-12-101-3/+8
| | | | | | | mapping kva when busying up buffers in an nfsiod. (this in addition to the previous check for 1/4 of the total buffer space) This makes sparc installs work over nfsv2. ok deraadt@
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-052-6/+2
| | | | ok guenther millert kettenis
* buf_acquire() can sleep, so advance down b_vnbufs afterwardsderaadt2012-11-171-3/+6
| | | | ok beck guenther
* Cleanup VFS mount string handling:jsing2012-09-102-19/+13
| | | | | | | | | | | - Avoid using copyinstr() without checking the return value. - sys_mount() has already copied the path in, so pass this to the filesystem mount code so that it does not have to copy it in again. - Avoid copyinstr()/bzero() dance when we can simply bzero() and strlcpy(). ok krw@
* If the current offset is strictly less than the process filesizeguenther2012-07-111-17/+22
| | | | | | | rlimit, then a write that would take it over the limit should be clamped, making it a partial write. ok beck@
* Add struct proc * argument to FRELE() and FILE_SET_MATURE() inguenther2012-04-221-3/+3
| | | | | | anticipation of further changes to closef(). No binary change. ok krw@ miod@ deraadt@
* Make rusage totals, itimers, and profile settings per-process insteadguenther2012-03-231-3/+3
| | | | | | | of per-rthread. Handling of per-thread tick and runtime counters inspired by how FreeBSD does it. ok kettenis@
* Prevent vrele() being called with a NULL argument if nfs_namei() returns ankettenis2012-03-211-6/+7
| | | | | | | | error in several places. Should fix the "vrele: null vp" panic that henning@ has been seeing lately. ok tedu@, krw@, deraadt@
* KNFbeck2011-07-092-219/+216
| | | | ok md5 "can't be worse" thib@
* fix nfs pending writes, which were not handled correctly in the commitbeck2011-07-081-5/+14
| | | | | | case. ok guenther@ thib@
* Recommit the reverted sigacts change now that the NFS use-after-freeguenther2011-07-051-2/+3
| | | | | | | | problem has been tracked down. This fixes the sharing of the signal handling state: shared bits go in sigacts, per-rthread bits goes in struct proc. ok deraadt@
* When calling nfs_request() for what could be an async request, passguenther2011-07-051-6/+8
| | | | | | | | | down curproc instead of the struct proc from the I/O request...which may gone away behind our back. Assert that the supplied request *is* curproc in a couple other places. Reproduction and testing by sthen@ ok deraadt@, beck@, art@
* move the specfs code to a place people can see it; ok guenther thib krwderaadt2011-07-042-4/+4
|
* Revert the sigacts diff: NFS can apparently retain pointers to processesguenther2011-04-181-3/+2
| | | | | | until they're zombies and then send them signals (for intr mounts). Until that is untangled, the sigacts change is unsafe. sthen@ was the victim for this one
* Correct the sharing of the signal handling state: stuff that shouldguenther2011-04-151-2/+3
| | | | | | | | | | | | be shared (p_sigignore, p_sigcatch, P_NOCLDSTOP, P_NOCLDWAIT) moves to struct sigacts, wihle stuff that should be per rthread (ps_oldmask, SAS_OLDMASK, ps_sigstk) moves to struct proc. Treat the coredumping state bits (ps_sig, ps_code, ps_type, ps_sigval) as per-rthread until our locking around coredumping is better. Oh, and remove the old SunOS-compat ps_usertramp member. "I like the sound of this" tedu@
* Every single vop_default is set to eopnotsupp, so retire itthib2011-04-051-4/+1
| | | | | | | | and return EOPNOTSUPP directly from the VOP_* functions. Filesystems should, at some point fill in every function in the vop_default struct so we can get rid of the 'if' statements in VOP_*.
* Bring back the "End the VOP experiment." diff, naddy's issues wherethib2010-12-213-105/+135
| | | | | | unrelated, and his alpha is much happier now. OK deraadt@
* Make sure we only initialize the nfsrv_descript_pl pool once.kettenis2010-12-051-3/+4
| | | | | | | | Re-initializing the pool everytime nfsd(8) terminates is very bad since it screws up the list of pools resulting in infinite loops when traversing that list. Issue found by Daniel Melameth. ok deraadt@
* Backout the VOP diff until the issues naddy was seeing on alpha (gcc3)thib2010-09-103-135/+105
| | | | have been resolved.
* Rename lookup/relookup to vfs_lookup/vfs_relookup.thib2010-09-092-6/+6
| | | | OK oga@, beck@, matthew@
* End the VOP experiment. Instead of the ridicolusly complicated operationthib2010-09-063-105/+135
| | | | | | | | | | | | | | | | | | | vector setup that has questionable features (that have, as far as I can tell never been used in practice, atleast not in OpenBSD), remove all the gunk and favor a simple struct full of function pointers that get set directly by each of the filesystems. Removes gobs of ugly code and makes things simpler by a magnitude. The only downside of this is that we loose the vnoperate feature so the spec/fifo operations of the filesystems need to be kept in sync with specfs and fifofs, this is no big deal as the API it self is pretty static. Many thanks to armani@ who pulled an earlier version of this diff to current after c2k10 and Gabriel Kihlman on tech@ for testing. Liked by many. "come on, find your balls" deraadt@.
* No "\n" needed at the end of panic() strings.krw2010-08-073-8/+8
| | | | | | | Bogus chunks pointed out by matthew@ and miod@. No cookies for marco@ and jasper@. ok deraadt@ miod@ matthew@ jasper@ macro@
* another pair of files which relied on mbuf.h for pool.h; should be the last,blambert2010-07-311-1/+2
| | | | | | | | as the kernel now compiles w/o ``#include <sys/pool.h>'' in mbuf.h; removing that line, though, is for another day, as a userland program (systat, IIRC) fails to build without it there. ok krw@
* If we find something is not aligned according to ALIGNED_POINTER(), wederaadt2010-07-051-2/+3
| | | | | | | | | | | cannot then re-align it using ALIGN(). That is not portable since we have architectures where the modulo are quite different. define an ALIGN_POINTER() macro in place, and use it in one spot. This caused a NFS crash on sparc (which borrows mbufs and chains them itself in insane ways). I heard claudio and beck trying to diagnose it from over the room when suddenly I knew exactly what it was. blambert spent a few hours on it making sure that I wasn't insane.
* m_copyback can fail to allocate memory, but is a void fucntion so gymnasticsblambert2010-07-021-2/+2
| | | | | | | | | are required to detect that. Change the function to take a wait argument (used in nfs server, but M_NOWAIT everywhere else for now) and to return an error ok claudio@ henning@ krw@