linux/fs
NeilBrown 190e4fbf96 [PATCH] knfsd: nfsd4: initialize recovery directory
NFSv4 clients are required to know what state they have on the server so that
they can reclaim it on server reboot.  However, it is possible for
pathalogical combinations of server reboots and network partitions to leave a
client in a state where it cannot know whether it has lost its state on the
server.

For this reason, rfc3530 requires that we store some information about clients
to stable storage.

So we maintain a directory /var/lib/nfs/v4recovery with a subdirectory for
each client with active state.  We leave open the possibility of including
files underneath each such subdirectory with information about the client, but
for now the subdirectories are empty.

We create a client subdirectory whenever a client makes its first non-reclaim
open_confirm.

We remove a client subdirectory whenever either
        a) its lease expires, or
	b) the grace period ends without it reclaiming anything.
When handling reclaims, we allow the reclaim if and only if the client doing
the reclaim has a subdirectory.

This patch adds just the code to scan the recovery directory on nfsd startup.

Signed-off-by: Andy Adamson <andros@citi.umich.edu>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-24 00:06:35 -07:00
..
adfs
affs
afs [PATCH] Exterminate PAGE_BUG 2005-05-01 08:59:01 -07:00
autofs
autofs4 [PATCH] autofs4: bad lookup fix 2005-06-21 19:07:35 -07:00
befs
bfs
cifs [CIFS] Fix cifs update of page cache. Write at correct offset when out of memory 2005-06-09 14:44:07 -07:00
coda [PATCH] class: convert the remaining class_simple users in the kernel to usee the new class api 2005-06-20 15:15:11 -07:00
cramfs
debugfs [PATCH] remove duplicate get_dentry functions in various places 2005-06-23 09:45:20 -07:00
devfs
devpts
efs
exportfs
ext2 [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
ext3 [PATCH] quota: ext3: Improve quota credit estimates 2005-06-24 00:05:20 -07:00
fat
freevxfs
hfs [PATCH] hfs, hfsplus: don't leak s_fs_info and fix an oops 2005-05-01 08:59:16 -07:00
hfsplus [PATCH] hfs, hfsplus: don't leak s_fs_info and fix an oops 2005-05-01 08:59:16 -07:00
hostfs [PATCH] uml: remove 2_5compat.h 2005-05-28 16:46:11 -07:00
hpfs
hppfs
hugetlbfs [PATCH] Avoiding mmap fragmentation 2005-06-21 18:46:16 -07:00
isofs [PATCH] isofs: show hidden files, add granularity for assoc/hidden files flags 2005-06-21 19:07:38 -07:00
jbd [PATCH] ext3: fix list scanning in __cleanup_transaction 2005-06-02 15:12:29 -07:00
jffs
jffs2 [PATCH] make some things static 2005-05-05 16:36:47 -07:00
jfs [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
lockd [PATCH] knfsd: lockd: flush signals on shutdown 2005-06-24 00:06:30 -07:00
minix
msdos
ncpfs
nfs [PATCH] Remove f_error field from struct file 2005-06-23 09:45:33 -07:00
nfs_common [PATCH] NFSD: Add server support for NFSv3 ACLs. 2005-06-22 16:07:23 -04:00
nfsd [PATCH] knfsd: nfsd4: initialize recovery directory 2005-06-24 00:06:35 -07:00
nls [PATCH] make some things static 2005-05-05 16:36:47 -07:00
ntfs
openpromfs
partitions [PATCH] revert msdos partitioning fix 2005-05-06 22:09:27 -07:00
proc [PATCH] setuid core dump 2005-06-23 09:45:26 -07:00
qnx4
ramfs
reiserfs [PATCH] Make reiserfs BUG on too big transaction 2005-06-24 00:05:23 -07:00
romfs
smbfs
sysfs [PATCH] remove duplicate get_dentry functions in various places 2005-06-23 09:45:20 -07:00
sysv
udf [PATCH] UDF filesystem: array '__mon_yday' declared as not static 2005-05-31 14:54:18 -07:00
ufs
umsdos
vfat
xfs [PATCH] pass iocb to dio_iodone_t 2005-06-24 00:05:19 -07:00
aio.c [PATCH] aio: optimize io_submit_one() 2005-05-01 08:59:16 -07:00
attr.c
bad_inode.c [PATCH] make some things static 2005-05-05 16:36:47 -07:00
binfmt_aout.c [PATCH] Avoiding mmap fragmentation 2005-06-21 18:46:16 -07:00
binfmt_elf_fdpic.c
binfmt_elf.c [PATCH] Avoiding mmap fragmentation 2005-06-21 18:46:16 -07:00
binfmt_em86.c
binfmt_flat.c [PATCH] binfmt_flat mmap flag fix 2005-06-06 14:57:51 -07:00
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c [PATCH] DocBook: fix some descriptions 2005-05-01 08:59:26 -07:00
block_dev.c [PATCH] block: add unlocked_ioctl support for block devices 2005-06-23 09:45:32 -07:00
buffer.c [PATCH] Bug in error recovery in fs/buffer.c::__block_prepare_write() 2005-06-23 09:45:34 -07:00
char_dev.c [PATCH] add check to /proc/devices read routines 2005-06-23 09:45:19 -07:00
compat_ioctl.c
compat.c [PATCH] NFS4: Don't use __user with compat_uptr_t 2005-04-27 15:39:03 -07:00
dcache.c [PATCH] make some things static 2005-05-05 16:36:47 -07:00
dcookies.c
direct-io.c [PATCH] pass iocb to dio_iodone_t 2005-06-24 00:05:19 -07:00
dnotify.c
dquot.c [PATCH] quota: sanitize dentry handling in vfs_quota_on_mount 2005-06-23 09:45:20 -07:00
eventpoll.c [PATCH] Remove eventpoll macro obfuscation 2005-06-23 09:45:30 -07:00
exec.c [PATCH] setuid core dump 2005-06-23 09:45:26 -07:00
fcntl.c [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
fifo.c
file_table.c [PATCH] Fix of bogus file max limit messages 2005-06-23 09:45:26 -07:00
file.c
filesystems.c
fs-writeback.c [PATCH] O(1) sb list traversing on syncs 2005-06-23 09:45:27 -07:00
inode.c [PATCH] fix for prune_icache()/forced final iput() races 2005-06-23 09:45:17 -07:00
ioctl.c
Kconfig [PATCH] knfsd: nfsd4: reboot hash 2005-06-24 00:06:33 -07:00
Kconfig.binfmt
libfs.c [PATCH] libfs: add simple attribute files 2005-06-20 15:15:30 -07:00
locks.c [PATCH] VFS: Ensure that all the on-stack struct file_lock call fl_release_private 2005-06-22 16:07:40 -04:00
Makefile [PATCH] NFSD: Add server support for NFSv3 ACLs. 2005-06-22 16:07:23 -04:00
mbcache.c [PATCH] make some things static 2005-05-05 16:36:47 -07:00
mpage.c [PATCH] mpage_end_io_write() I/O error handling fix 2005-06-04 17:12:59 -07:00
namei.c [PATCH] add some comments to lookup_create() 2005-06-23 09:45:26 -07:00
namespace.c
nfsctl.c
open.c [PATCH] sys_open() cleanup 2005-06-23 09:45:36 -07:00
pipe.c
posix_acl.c
quota_v1.c
quota_v2.c
quota.c [PATCH] O(1) sb list traversing on syncs 2005-06-23 09:45:27 -07:00
read_write.c [PATCH] aio: fix do_sync_(read|write) to properly handle aio retries 2005-06-23 09:45:34 -07:00
readdir.c
select.c [PATCH] make some things static 2005-05-05 16:36:47 -07:00
seq_file.c [PATCH] DocBook: fix some descriptions 2005-05-01 08:59:26 -07:00
stat.c
super.c [PATCH] O(1) sb list traversing on syncs 2005-06-23 09:45:27 -07:00
xattr_acl.c
xattr.c