linux/fs/nfs
Peter Zijlstra 89a09141df [PATCH] nfs: fix congestion control
The current NFS client congestion logic is severly broken, it marks the
backing device congested during each nfs_writepages() call but doesn't
mirror this in nfs_writepage() which makes for deadlocks.  Also it
implements its own waitqueue.

Replace this by a more regular congestion implementation that puts a cap on
the number of active writeback pages and uses the bdi congestion waitqueue.

Also always use an interruptible wait since it makes sense to be able to
SIGKILL the process even for mounts without 'intr'.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Christoph Lameter <clameter@engr.sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-03-16 19:25:05 -07:00
..
callback_proc.c [PATCH] fs/nfs/callback* passes error values big-endian 2006-10-20 10:26:40 -07:00
callback_xdr.c [PATCH] knfsd: SUNRPC: Provide room in svc_rqst for larger addresses 2007-02-12 09:48:36 -08:00
callback.c [PATCH] knfsd: SUNRPC: Provide room in svc_rqst for larger addresses 2007-02-12 09:48:36 -08:00
callback.h [PATCH] xdr annotations: fs/nfs/callback* 2006-10-20 10:26:40 -07:00
client.c Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ 2007-02-12 22:43:25 -08:00
delegation.c [PATCH] fs: Removing useless casts 2006-09-27 08:26:10 -07:00
delegation.h NFS: Rename struct nfs4_client to struct nfs_client 2006-09-22 23:24:31 -04:00
dir.c Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ 2007-02-12 22:43:25 -08:00
direct.c NFS: fix print format for tk_pid 2007-02-03 15:35:09 -08:00
file.c [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
getroot.c NFSv4: Don't require that NFSv4 mount paths begin with '/' 2007-02-03 15:35:05 -08:00
idmap.c [PATCH] nfs: change uses of f_{dentry,vfsmnt} to use f_path 2006-12-08 08:28:41 -08:00
inode.c NFS: Cleanup - avoid rereading 'jiffies' more than once in the same routine 2007-02-12 22:40:30 -08:00
internal.h NFSv4: Cleanups for fs_locations code. 2007-02-03 15:35:06 -08:00
iostat.h NFSv4: Fix an oops in nfs4_fill_super 2006-03-20 13:44:48 -05:00
Makefile NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
mount_clnt.c [PATCH] xdr annotations: mount_clnt 2006-10-20 10:26:41 -07:00
namespace.c [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
nfs2xdr.c [PATCH] xdr annotations: NFS readdir entries 2006-10-20 10:26:40 -07:00
nfs3acl.c NFSv3: Client-side nfsacl caching fix 2006-06-09 09:34:11 -04:00
nfs3proc.c NFS: Remove nfs_readpage_sync() 2007-02-03 15:35:06 -08:00
nfs3xdr.c [PATCH] xdr annotations: NFS readdir entries 2006-10-20 10:26:40 -07:00
nfs4_fs.h Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ 2007-02-12 22:43:25 -08:00
nfs4namespace.c NFSv4: /proc/mounts displays the wrong server name for referrals 2007-02-03 15:35:10 -08:00
nfs4proc.c Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ 2007-02-12 22:43:25 -08:00
nfs4renewd.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
nfs4state.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4xdr.c NFSv4: Fix NFS4_enc_server_caps_sz/NFS4_dec_server_caps_sz 2007-02-03 15:35:03 -08:00
nfsroot.c [NET]: ipconfig and nfsroot annotations 2006-12-02 21:21:09 -08:00
pagelist.c Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ into merge_linus 2006-12-07 16:35:17 -05:00
proc.c NFS: Remove nfs_readpage_sync() 2007-02-03 15:35:06 -08:00
read.c NFS: fix print format for tk_pid 2007-02-03 15:35:09 -08:00
super.c [PATCH] nfs: fix congestion control 2007-03-16 19:25:05 -07:00
symlink.c [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
sysctl.c [PATCH] nfs: fix congestion control 2007-03-16 19:25:05 -07:00
unlink.c NFS: kzalloc conversion in fs/nfs 2006-03-20 13:44:10 -05:00
write.c [PATCH] nfs: fix congestion control 2007-03-16 19:25:05 -07:00