Commit:     e79ad711a0108475c1b3a03815527e7237020b08
Parent:     ff0ce6845bc18292e80ea40d11c3d3a539a3fc5e
Author:     David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Thu Sep 27 13:52:00 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Thu Sep 27 13:52:00 2007 -0700

    [NET]: Zero length write() on socket should not simply return 0.
    This fixes kernel bugzilla #5731
    It should generate an empty packet for datagram protocols when the
    socket is connected, for one.
    The check is doubly-wrong because all that a write() can be is a
    sendmsg() call with a NULL msg_control and a single entry iovec.  No
    special semantics should be assigned to it, therefore the zero length
    check should be removed entirely.
    This matches the behavior of BSD and several other systems.
    Alan Cox notes that SuSv3 says the behavior of a zero length write on
    non-files is "unspecified", but that's kind of useless since BSD has
    defined this behavior for a quarter century and BSD is essentially
    what application folks code to.
    Based upon a patch from Stephen Hemminger.
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
 net/socket.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/net/socket.c b/net/socket.c
index 7d44453..b09eb90 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -777,9 +777,6 @@ static ssize_t sock_aio_write(struct kiocb *iocb, const 
struct iovec *iov,
        if (pos != 0)
                return -ESPIPE;
-       if (iocb->ki_left == 0) /* Match SYS5 behaviour */
-               return 0;
        x = alloc_sock_iocb(iocb, &siocb);
        if (!x)
                return -ENOMEM;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to