From: Eric Dumazet <dada1@cosmosbay•com>
To: David Miller <davem@davemloft•net>
Cc: netdev@vger•kernel.org
Subject: [PATCH] NET : cleanup sock_from_file()
Date: Wed, 07 Feb 2007 00:03:25 +0100 [thread overview]
Message-ID: <45C9093D.1030605@cosmosbay.com> (raw)
In-Reply-To: <20070206.144106.39659974.davem@davemloft.net>
[-- Attachment #1: Type: text/plain, Size: 607 bytes --]
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>
[-- Attachment #2: sock_from_file.patch --]
[-- Type: text/plain, Size: 712 bytes --]
--- linux/net/socket.c 2007-02-07 00:37:44.000000000 +0100
+++ linux-ed/net/socket.c 2007-02-07 00:43:36.000000000 +0100
@@ -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;
}
/**
next prev parent reply other threads:[~2007-02-06 23:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-02 12:05 [PATCH 0/7] [S390]: Introduction of AF_IUCV sockets support Frank Pavlic
2007-02-06 22:41 ` David Miller
2007-02-06 23:03 ` Eric Dumazet [this message]
2007-02-08 21:35 ` [PATCH 2/5] NET : Convert ipv4 route to use the new dst_entry 'next' pointer Eric Dumazet
2007-02-08 21:36 ` [PATCH 3/5] NET : Convert ipv6 " Eric Dumazet
2007-02-08 21:39 ` [PATCH 4/5] NET : Convert decnet " Eric Dumazet
2007-02-08 21:44 ` [PATCH 4/5 resend] " Eric Dumazet
2007-02-08 21:41 ` [PATCH 5/5] NET : Reorder fields of struct dst_entry Eric Dumazet
2007-02-08 23:00 ` [PATCH] NET : cleanup sock_from_file() David Miller
2007-02-07 10:31 ` [PATCH 0/7] [S390]: Introduction of AF_IUCV sockets support Frank Pavlic
2007-02-07 11:36 ` Frank Pavlic
2007-02-08 22:00 ` David Miller
2007-02-09 19:15 ` Frank Pavlic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45C9093D.1030605@cosmosbay.com \
--to=dada1@cosmosbay$(echo .)com \
--cc=davem@davemloft$(echo .)net \
--cc=netdev@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox