Kernel NFS Daemon Maintainer's Page
This page describes the state of the kernel NFSD code
that is maintained by gam3@acm.org.
TODO
- NFS over TCP.
- AUTH_DES.
- NFS Version 3 (See below).
Changes
- May 1, 1999
- updated 2.2.7 version of knfsd v3.
- April 19, 1999
- 2.2.6 release of knfsd v3.
- April 12, 1999
- Alpha release of knfsd v3.
- March 15, 1999
- H.J. has released knfsd-1.2.
- Feb 26, 1999
- A patch is available for lockd)
- Feb 23, 1999
- A new patch is available for nfsd)
Related links
User software
In order for these changes to work fully, you need a copy of the latest
knfsd
user programs from H.J. Lu.
Related Links
Olaf Kirch's homepage.
Swapping over nfs
(not tested).
Current patches
Version 3 knfsd
linux-2.2.7-knfsdv3-1.diff
[ALPHA]
This patch adds nfs version 3 support to the kernel nfs server.
Apply this patch after you apply Trond's
nfs v3 patch.
You may also need a new version of
mount.
linux-2.2.5-knfsdv3.diff
lockd
lockd-2.2.2-1.patch
[GAMA]
Simple patch to make lockd slightly more efficient and prettier.
BUGS: you must reload both nfsd and lockd, if you are using modules.
nfsd
nfsd-2.2.2-1.patch
[BETA]
BUGS:
- The rename cache could hold thousands of entries if
thousands of files are renamed in 60 seconds.
- The short term cache has been disabled. (But this may be a feature.)
FEATURES:
All those listed below, and
- Clients should be able to use old file handles.
NOTE: With this patch knfsd should be able to pass all
of the cthon/basic tests, on all platforms.
nfsd-2.2.1-2.patch.
[ALPHA].
BUGS:
- The rename cache has not been well tested.
- The rename cache could hold thousnads of entries if
thousands of files are renamed in 60 seconds.
- The short term cache has been disabled.
(But this may be a feature.)
FEATURES:
- fh_version is now compared on ext2 exports and will return
STALE if the filehandle version number does not match the
local inode version number.
- The struct dentry * is no longer stored in the
filehandle. (This is being removed because it does not seem
to be needed, and not for any other reason. If it is
needed to help performance it will be put back in.)
- There is now a rename cache. For the moment the cache
holds all entries less than 60 seconds old and the last
500 entries. (It would be nice to have an idea of the
number of renames that can be done in 60 seconds).
And every thing that was in
nfsd-2.2.1-1.patch. [GAMA]
- Expire cache periodicly. Before the cache was only expired on
access from a client. (expire_all())
- Expire cache for deleted files. Before these would stay in the
cache until the next access after 5 seconds. (expire_by_dentry())
- Change to fs/nfs/dir.c to allow
mkdir zappa
(mv frank zappa; echo This did not work) > frank
to work. This may break rename for unfsd.
- Change of buffering for readdir from
RC_REPLSTAT to
RC_REPLBUFF. (This is already in Alan's `ac' code.)
- The nfsd_create: dentry filename not negative! message
should only be seen if there was a race to get lock the parent.
- Added fb_version field to nfs_filehandle. This will be used in
the near future.
- Miscellaneous whitespace changes.
Old patches
nfsd-2.1.127-5.patch.
Changes
- SECURITY inode_change_ok() was not being called.
This allowed anyone to change attributes.
- On root_squashed exports root could not mount
subdirectories/files that where in directories where nobody didn't
have EXECUTE permission. This was true even if other users would
be able to access that directory. Now as long as any EXECUTE
bit is set the partition can be mounted.
Dynamic read-ahead cache allocation patch
racache-2.1.129-2.patch.
Procfs export file patch
See knfsd's exports through /proc/fs/nfsd/exports with
nfsd_procfs_2.1.127.patch.
Dynamic Readahead buffer allocation patch
This patch
nfsd_procfs_2.1.127.patch.
Changes Applied to linux 2.1.127
- Root could mount subdirectories/files that where in mode 000
directories.
- exp_rootfh could segfault if bad data was passed to it.
- setuser did not set groups correctly.
- setuser did not reset capability flags. This would allow
users access files in directories with mode 000.
Kernel patch
nfsd-2.1.126-2.patch.
This patch is included in 2.1.127.
Changes Applied to linux 2.1.126
- knfsd will allow multiple exports of a single partition. The mounts
must be proper subsets of the partition.
- knfsd will allow mounts above the export point. That is if you
export / and /usr is in the same partition,
then you can mount /usr.
- You can now export and mount regular files. (It is not clear if
they can be used for swap.)
- knfsd use to return EACCESS when you try to access a covered
directory.
Now knfsd acts in one of two ways: either it does not
allows any access inside of these directories, or if
CONFIG_NFSD_SUN="y" then knfsd displays these
directories as if they where not covered, the way that
SunOS 4 and Solaris do.
- knfsd now checks that the client is not spoofing the
server into using different export permissions for a file.
This should get rid of any worries about item 1 above
creating security problems.