net/ceph: Only clear SOCK_NOSPACE when there is sufficient space in the socket buffer
authorJim Schutt <jaschut@sandia.gov>
Wed, 29 Feb 2012 15:30:58 +0000 (08:30 -0700)
committerAlex Elder <elder@dreamhost.com>
Thu, 22 Mar 2012 15:47:45 +0000 (10:47 -0500)
commit182fac2689b769a96e7fc9defcd560c5cca92b1e
tree1944b5db730a3157cd8f3d2e50fa88db263c5114
parentc16fa4f2ad19908a47c63d8fa436a1178438c7e7
net/ceph: Only clear SOCK_NOSPACE when there is sufficient space in the socket buffer

The Ceph messenger would sometimes queue multiple work items to write
data to a socket when the socket buffer was full.

Fix this problem by making ceph_write_space() use SOCK_NOSPACE in the
same way that net/core/stream.c:sk_stream_write_space() does, i.e.,
clearing it only when sufficient space is available in the socket buffer.

Signed-off-by: Jim Schutt <jaschut@sandia.gov>
Reviewed-by: Alex Elder <elder@dreamhost.com>
net/ceph/messenger.c