From: Benjamin LaHaise Date: Wed, 10 Aug 2005 21:16:04 +0000 (-0700) Subject: [NET]: Make use of ->private_data in sockfd_lookup X-Git-Tag: v2.6.14-rc1~1035^2~114 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=07dc3f0718d2c88c3094a0aadeeb4744effc5439;p=linux-2.6-omap-h63xx.git [NET]: Make use of ->private_data in sockfd_lookup Please consider the patch below which makes use of file->private_data to store the pointer to the socket, which avoids touching several unused cachelines in the dentry and inode in sockfd_lookup. Signed-off-by: Benjamin LaHaise Signed-off-by: David S. Miller --- diff --git a/net/socket.c b/net/socket.c index 6f2a1788197..5f76ab8a159 100644 --- a/net/socket.c +++ b/net/socket.c @@ -404,6 +404,7 @@ int sock_map_fd(struct socket *sock) file->f_mode = FMODE_READ | FMODE_WRITE; file->f_flags = O_RDWR; file->f_pos = 0; + file->private_data = sock; fd_install(fd, file); } @@ -436,6 +437,9 @@ struct socket *sockfd_lookup(int fd, int *err) return NULL; } + if (file->f_op == &socket_file_ops) + return file->private_data; /* set in sock_map_fd */ + inode = file->f_dentry->d_inode; if (!S_ISSOCK(inode->i_mode)) { *err = -ENOTSOCK;