summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Dumazet <dada1@cosmosbay.com>2007-02-08 23:59:57 +0100
committerDavid S. Miller <davem@davemloft.net>2007-02-08 23:59:57 +0100
commit23bb80d2158cf4421fe239d788fd53cafb151050 (patch)
tree63b3033a3d6ee10baf7ecdda350b2cc0cd03baa9
parent[NET]: change layout of ehash table (diff)
downloadlinux-23bb80d2158cf4421fe239d788fd53cafb151050.tar.xz
linux-23bb80d2158cf4421fe239d788fd53cafb151050.zip
[NET]: cleanup sock_from_file()
I believe dead code from sock_from_file() can be cleaned up. All sockets are now built using sock_attach_fd(), that puts the 'sock' pointer into file->private_data and &socket_file_ops into file->f_op I could not find a place where file->private_data could be set to NULL, keeping opened the file. So to get 'sock' from a 'file' pointer, either : - This is a socket file (f_op == &socket_file_ops), and we can directly get 'sock' from private_data. - This is not a socket, we return -ENOTSOCK and dont even try to find a socket via dentry/inode :) Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/socket.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/net/socket.c b/net/socket.c
index 4e396312f8d5..fc74930f1443 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -407,24 +407,11 @@ int sock_map_fd(struct socket *sock)
static struct socket *sock_from_file(struct file *file, int *err)
{
- struct inode *inode;
- struct socket *sock;
-
if (file->f_op == &socket_file_ops)
return file->private_data; /* set in sock_map_fd */
- inode = file->f_path.dentry->d_inode;
- if (!S_ISSOCK(inode->i_mode)) {
- *err = -ENOTSOCK;
- return NULL;
- }
-
- sock = SOCKET_I(inode);
- if (sock->file != file) {
- printk(KERN_ERR "socki_lookup: socket file changed!\n");
- sock->file = file;
- }
- return sock;
+ *err = -ENOTSOCK;
+ return NULL;
}
/**