kernel-ark/include/linux
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
..
byteorder
dvb
hdlc
isdn
lockd [PATCH] NLM: fix a client-side race on blocking locks. 2005-06-22 16:07:42 -04:00
mmc
mtd
netfilter_arp
netfilter_bridge
netfilter_ipv4 [NETFILTER]: Fix "iptables -D" rule deletion with ipt_CLUSTERIP target. 2005-06-22 12:38:33 -07:00
netfilter_ipv6
nfsd [PATCH] knfsd: nfsd4: initialize recovery directory 2005-06-24 00:06:35 -07:00
raid [PATCH] Two small fixes for md verion-1 superblocks. 2005-06-21 19:07:47 -07:00
sunrpc [PATCH] NFSD: Add server support for NFSv3 ACLs. 2005-06-22 16:07:23 -04:00
tc_act
tc_ematch
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi.h
adb.h
adfs_fs_i.h
adfs_fs_sb.h
adfs_fs.h
affs_fs.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio_abi.h
aio.h
amifd.h
amifdreg.h
amigaffs.h
apm_bios.h
arcdevice.h
arcfb.h [PATCH] Framebuffer driver for Arc LCD board 2005-06-21 19:07:41 -07:00
ata.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h
auto_fs4.h [PATCH] autofs4: subversion bump to identify these changes 2005-06-21 19:07:36 -07:00
auto_fs.h
awe_voice.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h [PATCH] setuid core dump 2005-06-23 09:45:26 -07:00
bio.h
bitmap.h
bitops.h
blkdev.h [PATCH] blk: remove BLK_TAGS_{PER_LONG|MASK} 2005-06-23 09:45:15 -07:00
blkpg.h
blockgroup_lock.h
bootmem.h [PATCH] sparsemem base: simple NUMA remap space allocator 2005-06-23 09:45:01 -07:00
bpqether.h
buffer_head.h
cache.h
capability.h
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
chio.h
circ_buf.h
cobalt-nvram.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_proc.h
coda_psdev.h
coda.h
coff.h
com20020.h
compat_ioctl.h
compat.h
compiler-gcc2.h
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
config.h
console_struct.h
console.h
consolemap.h
cpu.h
cpufreq.h
cpumask.h
cpuset.h
cramfs_fs_sb.h
cramfs_fs.h
crc32.h
crc32c.h
crc-ccitt.h
crypto.h
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
dcookies.h
debugfs.h
delay.h
devfs_fs_kernel.h
devfs_fs.h
device-mapper.h
device.h [PATCH] Driver core: change device_attribute callbacks 2005-06-20 15:15:31 -07:00
devpts_fs.h
dio.h
dirent.h
divert.h
dm9000.h
dm-ioctl.h
dma-mapping.h
dmapool.h
dmi.h
dn.h
dnotify.h
dqblk_v1.h [PATCH] quota: improve credits estimates 2005-06-24 00:05:19 -07:00
dqblk_v2.h [PATCH] quota: improve credits estimates 2005-06-24 00:05:19 -07:00
dqblk_xfs.h
ds1286.h
dtlk.h
edd.h
eeprom.h
efi.h
efs_dir.h
efs_fs_i.h
efs_fs_sb.h
efs_fs.h
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf.h
elfcore.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventpoll.h
ext2_fs_sb.h
ext2_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h [PATCH] quota: ext3: Improve quota credit estimates 2005-06-24 00:05:20 -07:00
ext3_jbd.h [PATCH] quota: ext3: Improve quota credit estimates 2005-06-24 00:05:20 -07:00
fadvise.h
fb.h [PATCH] fbdev: stack reduction 2005-06-21 19:07:41 -07:00
fcdevice.h
fcntl.h [PATCH] Don't force O_LARGEFILE for 32 bit processes on ia64 2005-06-23 09:45:28 -07:00
fd1772.h
fd.h
fddidevice.h
fdreg.h
file.h
filter.h
firmware.h
flat.h
font.h [PATCH] New framebuffer fonts + updated 12x22 font available 2005-06-21 19:07:41 -07:00
fs_struct.h
fs.h [PATCH] pass iocb to dio_iodone_t 2005-06-24 00:05:19 -07:00
fsl_devices.h [PATCH] ppc32: Added support for new MPC8548 family of PowerQUICC III processors 2005-06-21 18:46:23 -07:00
ftape-header-segment.h
ftape-vendors.h
ftape.h
futex.h
gameport.h
gen_stats.h
genalloc.h [PATCH] ia64 uncached alloc 2005-06-21 18:46:18 -07:00
generic_serial.h
genhd.h [PATCH] add check to /proc/devices read routines 2005-06-23 09:45:19 -07:00
gfp.h [PATCH] Periodically drain non local pagesets 2005-06-21 18:46:18 -07:00
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hdsmart.h
hiddev.h
highmem.h
highuid.h
hippidevice.h
hpet.h
hpfs_fs.h
hugetlb.h [PATCH] Hugepage consolidation 2005-06-21 18:46:15 -07:00
hwmon-sysfs.h [PATCH] I2C: rename i2c-sysfs.h to hwmon-sysfs.h 2005-06-21 21:52:05 -07:00
hysdn_if.h
i2c-algo-bit.h
i2c-algo-ite.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-algo-sibyte.h
i2c-dev.h
i2c-id.h [PATCH] I2C: Add support for Maxim/Dallas DS1374 Real-Time Clock Chip (1/2) 2005-06-21 21:52:06 -07:00
i2c-sensor.h
i2c-vid.h [PATCH] I2C: i2c-vid.h: Support for VID to reg conversion 2005-06-21 21:51:49 -07:00
i2c.h [PATCH] I2C: Kill address ranges in non-sensors i2c chip drivers 2005-06-21 21:51:48 -07:00
i2o-dev.h [PATCH] I2O: second code cleanup of sparse warnings and unneeded syncronization 2005-06-24 00:05:29 -07:00
i2o.h [PATCH] I2O: Lindent run and replacement of printk through osm printing functions 2005-06-24 00:05:29 -07:00
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h [PATCH] NUMA aware block device control structure allocation 2005-06-23 09:45:09 -07:00
idr.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_ltalk.h
if_packet.h
if_plip.h
if_ppp.h
if_pppox.h
if_shaper.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
if_wanpipe_common.h
if_wanpipe.h
if.h
igmp.h
in6.h
in_route.h
in.h
inet.h
inetdevice.h
init_task.h
init.h
initrd.h
input.h
interrupt.h
ioc4.h [PATCH] ioc4: PCI bus speed detection 2005-06-21 18:46:32 -07:00
ioctl32.h
ioctl.h
ioport.h
ip6_tunnel.h
ip_mp_alg.h
ip.h
ipc.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h [PATCH] ipmi: add power cycle capability 2005-06-24 00:05:23 -07:00
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irda.h
irq_cpustat.h
irq.h [PATCH] uml: make hw_controller_type->release exist only for archs needing it 2005-06-21 19:07:32 -07:00
isapnp.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ite_gpio.h
ixjuser.h
jbd.h
jffs2_fs_i.h
jffs2_fs_sb.h
jffs2.h
jffs.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kd.h
kdev_t.h
kernel_stat.h
kernel.h
kernelcapi.h
key-ui.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
key.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
keyboard.h
keyctl.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
kfifo.h
klist.h [PATCH] add klist_node_attached() to determine if a node is on a list or not. 2005-06-20 15:15:17 -07:00
kmalloc_sizes.h
kmod.h [PATCH] Keys: Pass session keyring to call_usermodehelper() 2005-06-24 00:05:18 -07:00
kobj_map.h
kobject_uevent.h
kobject.h
kprobes.h [PATCH] kprobes: Temporary disarming of reentrant probe 2005-06-23 09:45:24 -07:00
kref.h
kthread.h
lapb.h
lcd.h
libata.h
libps2.h
limits.h
linkage.h
linux_logo.h
list.h
llc.h
loop.h [PATCH] optimise loop driver a bit 2005-06-23 09:45:18 -07:00
lp.h
major.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mempolicy.h
mempool.h [PATCH] NUMA aware block device control structure allocation 2005-06-23 09:45:09 -07:00
meye.h
mii.h
minix_fs.h
miscdevice.h
mm_inline.h
mm.h [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
mman.h
mmtimer.h
mmzone.h [PATCH] sparsemem hotplug base 2005-06-23 09:45:05 -07:00
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h
mtio.h
mv643xx.h
n_r3964.h
namei.h
namespace.h
nbd.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
net.h
netdevice.h [PATCH] create a kstrdup library function 2005-06-23 09:45:18 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h [NETFILTER]: Kill nf_debug 2005-06-21 14:01:57 -07:00
netfilter_ipv6.h
netfilter_logging.h
netfilter.h
netlink.h [NETLINK]: netlink_callback structure needs 5 args not 4 2005-06-21 12:38:48 -07:00
netpoll.h [NETPOLL]: allow multiple netpoll_clients to register against one interface 2005-06-22 22:05:59 -07:00
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h [PATCH] nfsd4: fix fh_expire_type 2005-06-24 00:06:28 -07:00
nfs_fs_i.h [PATCH] NFSv4: Clean up nfs4 lock state accounting 2005-06-22 16:07:42 -04:00
nfs_fs_sb.h [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
nfs_fs.h [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00
nfs_idmap.h
nfs_mount.h [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
nfs_page.h [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00
nfs_xdr.h [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
nfs.h
nfsacl.h [PATCH] NFSD: Add server support for NFSv3 ACLs. 2005-06-22 16:07:23 -04:00
nfsd_idmap.h [PATCH] knfsd: nfsd4: idmap initialization 2005-06-24 00:06:32 -07:00
nls.h
nmi.h
node.h [PATCH] Driver core: unregister_node() for hotplug use 2005-06-20 15:15:29 -07:00
nodemask.h
notifier.h
nubus.h
numa.h [PATCH] sparsemem memory model 2005-06-23 09:45:04 -07:00
nvram.h
openprom_fs.h
oprofile.h
page-flags.h [PATCH] __read_page_state(): pass unsigned long instead of unsigned 2005-06-21 18:46:17 -07:00
pagemap.h [PATCH] VM: add __GFP_NORECLAIM 2005-06-21 18:46:14 -07:00
pagevec.h
param.h
parport_pc.h
parport.h
parser.h
patchkey.h
pci_ids.h [PATCH] tpm: TPMs on additional LPC bus 2005-06-24 00:05:27 -07:00
pci-acpi.h
pci-dynids.h
pci.h
pcieport_if.h
percpu_counter.h
percpu.h
personality.h
pfkeyv2.h
pg.h
phonedev.h
pid.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h [PATCH] Improve CD/DVD packet driver write performance 2005-06-23 09:45:30 -07:00
platform.h
pm.h
pmu.h
pnp.h
pnpbios.h
poll.h
posix_acl_xattr.h [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
posix_acl.h
posix_types.h
posix-timers.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
prctl.h
preempt.h
prefetch.h
prio_tree.h
proc_fs.h
profile.h
ps2esdi.h
ptrace.h
qic117.h
qnx4_fs.h
qnxtypes.h
quota.h [PATCH] quota: improve credits estimates 2005-06-24 00:05:19 -07:00
quotaio_v1.h
quotaio_v2.h
quotaops.h [PATCH] quota: consolidate code surrounding vfs_quota_on_mount 2005-06-23 09:45:20 -07:00
radeonfb.h
radix-tree.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h
reboot_fixups.h
reboot.h
reiserfs_acl.h [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
reiserfs_fs_i.h
reiserfs_fs_sb.h [PATCH] quota: reiserfs: improve quota credit estimates 2005-06-24 00:05:20 -07:00
reiserfs_fs.h [PATCH] quota: reiserfs: improve quota credit estimates 2005-06-24 00:05:20 -07:00
reiserfs_xattr.h
resource.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc.h
rtnetlink.h
rwsem-spinlock.h
rwsem.h
sc26198.h
scatterlist.h
scc.h
sched.h [PATCH] Keys: Make request-key create an authorisation key 2005-06-24 00:05:19 -07:00
sctp.h
scx200_gpio.h
scx200.h
sdla_asy.h
sdla_chdlc.h
sdla_fr.h
sdla_ppp.h
sdla_x25.h
sdla.h
sdladrv.h
sdlapci.h
sdlasfm.h
seccomp.h
securebits.h
security.h
selection.h
selinux_netlink.h
sem.h
seq_file.h
seqlock.h
serial167.h
serial_8250.h
serial_core.h
serial_reg.h
serial.h
serialP.h
serio.h
shm.h
shmem_fs.h
signal.h
skbuff.h [NETFILTER]: Kill nf_debug 2005-06-21 14:01:57 -07:00
slab.h
smb_fs_i.h
smb_fs_sb.h
smb_fs.h
smb_mount.h
smb.h
smbno.h
smp_lock.h
smp.h [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
snmp.h
socket.h
sockios.h
som.h
sonet.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
stallion.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h [PATCH] create a kstrdup library function 2005-06-23 09:45:18 -07:00
stringify.h
superhyway.h
suspend.h
swap.h [PATCH] vm: try_to_free_pages unused argument 2005-06-21 18:46:17 -07:00
swapops.h
synclink.h
sys.h
syscalls.h
sysctl.h [TCP]: Add pluggable congestion control algorithm infrastructure. 2005-06-23 12:19:55 -07:00
sysdev.h
sysfs.h [PATCH] sysfs-iattr: add sysfs_setattr 2005-06-20 15:15:37 -07:00
sysrq.h
sysv_fs.h
tcp_diag.h [TCP]: Report congestion control algorithm in tcp_diag. 2005-06-23 12:21:28 -07:00
tcp.h [TCP]: Add pluggable congestion control algorithm infrastructure. 2005-06-23 12:19:55 -07:00
telephony.h
termios.h
thread_info.h
threads.h
ticable.h
time.h
timer.h [PATCH] timers: introduce try_to_del_timer_sync() 2005-06-23 09:45:16 -07:00
times.h
timex.h
tiocl.h
topology.h
toshiba.h
transport_class.h
trdevice.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h [PATCH] Introduce tty_unregister_ldisc() 2005-06-23 09:45:35 -07:00
types.h
udf_fs_i.h
udf_fs_sb.h
udf_fs.h
udp.h
ufs_fs_i.h
ufs_fs_sb.h
ufs_fs.h
uinput.h
uio.h
ultrasound.h
umem.h
un.h
unistd.h
usb_cdc.h
usb_ch9.h
usb_gadget.h
usb_gadgetfs.h
usb_otg.h
usb_sl811.h
usb.h [PATCH] better USB_MON dependencies 2005-06-23 10:04:15 -07:00
usbdevice_fs.h
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
videodev2.h
videodev.h
videotext.h
vmalloc.h
vt_buffer.h
vt_kern.h
vt.h
wait.h [PATCH] aio: make wait_queue ->task ->private 2005-06-23 09:45:34 -07:00
wanpipe.h
wanrouter.h
watchdog.h
wavefront.h
wireless.h
workqueue.h
writeback.h
x25.h [X25]: Fast select with no restriction on response 2005-06-22 22:16:17 -07:00
xattr_acl.h
xattr.h
xfrm.h
yam.h
zconf.h
zftape.h
zlib.h
zorro_ids.h
zorro.h
zutil.h