Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de0fa95c14bc4d4b545fae26439371ebfdcb8534
Commit:     de0fa95c14bc4d4b545fae26439371ebfdcb8534
Parent:     62013dbb8418eb7231c1577d238cf2e76b7696b0
Author:     Pavel Emelyanov <[EMAIL PROTECTED]>
AuthorDate: Wed Nov 14 16:01:43 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jan 28 14:54:00 2008 -0800

    [NET]: Use sockfd_lookup_light in the rest of the net/socket.c
    
    Some time ago a sockfd_lookup_light was introduced and
    most of the socket.c file was patched to use it. However
    two routines were left - sys_sendto and sys_recvfrom.
    
    Patch them as well, since this helper does exactly what
    these two need.
    
    Signed-off-by: Pavel Emelyanov <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/socket.c |   25 +++++++------------------
 1 files changed, 7 insertions(+), 18 deletions(-)

diff --git a/net/socket.c b/net/socket.c
index 92fab9e..aeeab38 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1594,16 +1594,11 @@ asmlinkage long sys_sendto(int fd, void __user *buff, 
size_t len,
        struct msghdr msg;
        struct iovec iov;
        int fput_needed;
-       struct file *sock_file;
 
-       sock_file = fget_light(fd, &fput_needed);
-       err = -EBADF;
-       if (!sock_file)
+       sock = sockfd_lookup_light(fd, &err, &fput_needed);
+       if (!sock)
                goto out;
 
-       sock = sock_from_file(sock_file, &err);
-       if (!sock)
-               goto out_put;
        iov.iov_base = buff;
        iov.iov_len = len;
        msg.msg_name = NULL;
@@ -1625,7 +1620,7 @@ asmlinkage long sys_sendto(int fd, void __user *buff, 
size_t len,
        err = sock_sendmsg(sock, &msg, len);
 
 out_put:
-       fput_light(sock_file, fput_needed);
+       fput_light(sock->file, fput_needed);
 out:
        return err;
 }
@@ -1654,17 +1649,11 @@ asmlinkage long sys_recvfrom(int fd, void __user *ubuf, 
size_t size,
        struct msghdr msg;
        char address[MAX_SOCK_ADDR];
        int err, err2;
-       struct file *sock_file;
        int fput_needed;
 
-       sock_file = fget_light(fd, &fput_needed);
-       err = -EBADF;
-       if (!sock_file)
-               goto out;
-
-       sock = sock_from_file(sock_file, &err);
+       sock = sockfd_lookup_light(fd, &err, &fput_needed);
        if (!sock)
-               goto out_put;
+               goto out;
 
        msg.msg_control = NULL;
        msg.msg_controllen = 0;
@@ -1683,8 +1672,8 @@ asmlinkage long sys_recvfrom(int fd, void __user *ubuf, 
size_t size,
                if (err2 < 0)
                        err = err2;
        }
-out_put:
-       fput_light(sock_file, fput_needed);
+
+       fput_light(sock->file, fput_needed);
 out:
        return err;
 }
-
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  http://vger.kernel.org/majordomo-info.html

Reply via email to