kernel-fxtec-pro1x/fs/dlm
David Miller b36930dd50 dlm: Handle application limited situations properly.
In the normal regime where an application uses non-blocking I/O
writes on a socket, they will handle -EAGAIN and use poll() to
wait for send space.

They don't actually sleep on the socket I/O write.

But kernel level RPC layers that do socket I/O operations directly
and key off of -EAGAIN on the write() to "try again later" don't
use poll(), they instead have their own sleeping mechanism and
rely upon ->sk_write_space() to trigger the wakeup.

So they do effectively sleep on the write(), but this mechanism
alone does not let the socket layers know what's going on.

Therefore they must emulate what would have happened, otherwise
TCP cannot possibly see that the connection is application window
size limited.

Handle this, therefore, like SUNRPC by setting SOCK_NOSPACE and
bumping the ->sk_write_count as needed when we hit the send buffer
limits.

This should make TCP send buffer size auto-tuning and the
->sk_write_space() callback invocations actually happen.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: David Teigland <teigland@redhat.com>
2010-11-11 13:05:12 -06:00
..
ast.c dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
ast.h dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
config.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
config.h dlm: recover nodes that are removed and re-added 2008-04-21 11:18:01 -05:00
debug_fs.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
dir.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
dir.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
dlm_internal.h dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
Kconfig menuconfig: transform NLS and DLM menus 2007-10-17 08:43:00 -07:00
lock.c dlm: Don't send callback to node making lock request when "try 1cb" fails 2010-09-03 10:10:47 -05:00
lock.h dlm: make dlm_print_rsb() static 2008-04-21 11:18:01 -05:00
lockspace.c Driver core: Constify struct sysfs_ops in struct kobj_type 2010-03-07 17:04:49 -08:00
lockspace.h dlm: detect available userspace daemon 2008-08-28 11:49:43 -05:00
lowcomms.c dlm: Handle application limited situations properly. 2010-11-11 13:05:12 -06:00
lowcomms.h dlm: connect to nodes earlier 2009-05-15 09:34:12 -05:00
lvb_table.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
main.c dlm: move plock code from gfs2 2008-04-21 11:22:28 -05:00
Makefile dlm: move plock code from gfs2 2008-04-21 11:22:28 -05:00
member.c Fix misspellings of "truly" in comments. 2010-02-04 11:55:45 +01:00
member.h dlm: reject messages from non-members 2008-01-30 11:04:42 -06:00
memory.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
memory.h dlm: use dlm prefix on alloc and free functions 2008-01-29 17:17:19 -06:00
midcomms.c dlm: fix up memory allocation flags 2008-12-23 10:15:40 -06:00
midcomms.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
netlink.c dlm: use genl_register_family_with_ops() 2010-08-05 14:22:01 -05:00
plock.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
rcom.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
rcom.h [DLM] block dlm_recv in recovery transition 2007-10-10 08:56:38 +01:00
recover.c dlm: change rsbtbl rwlock to spinlock 2009-01-08 15:12:39 -06:00
recover.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
recoverd.c dlm: recover nodes that are removed and re-added 2008-04-21 11:18:01 -05:00
recoverd.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00
requestqueue.c dlm: always use GFP_NOFS 2009-11-30 16:34:43 -06:00
requestqueue.h dlm: use proper C for dlm/requestqueue stuff (and fix alignment bug) 2008-02-04 01:21:32 -06:00
user.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
user.h dlm: fix ordering of bast and cast 2010-02-24 11:46:53 -06:00
util.c dlm: do not byteswap rcom_config 2008-02-04 01:23:43 -06:00
util.h [DLM] The core of the DLM for GFS2/CLVM 2006-01-18 09:30:29 +00:00