netdev
[Top] [All Lists]

[PATCH] Remove i_sock

To: netdev@xxxxxxxxxxx
Subject: [PATCH] Remove i_sock
From: Matthew Wilcox <matthew@xxxxxx>
Date: Sat, 26 Mar 2005 01:37:42 +0000
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.1i
Remove i_sock from struct inode.  Also remove some checks for SOCKET_I()
returning NULL -- it can never return NULL for a valid inode.

Signed-off-by: Matthew Wilcox <matthew@xxxxxx>

Index: ./fs/inode.c
===================================================================
RCS file: /var/lib/cvs/linux-2.6/fs/inode.c,v
retrieving revision 1.17
diff -u -p -r1.17 inode.c
--- ./fs/inode.c        18 Mar 2005 13:17:29 -0000      1.17
+++ ./fs/inode.c        24 Mar 2005 20:56:43 -0000
@@ -118,7 +118,6 @@ static struct inode *alloc_inode(struct 
                inode->i_blkbits = sb->s_blocksize_bits;
                inode->i_flags = 0;
                atomic_set(&inode->i_count, 1);
-               inode->i_sock = 0;
                inode->i_op = &empty_iops;
                inode->i_fop = &empty_fops;
                inode->i_nlink = 1;
Index: ./include/linux/fs.h
===================================================================
RCS file: /var/lib/cvs/linux-2.6/include/linux/fs.h,v
retrieving revision 1.29
diff -u -p -r1.29 fs.h
--- ./include/linux/fs.h        18 Mar 2005 13:17:48 -0000      1.29
+++ ./include/linux/fs.h        24 Mar 2005 20:56:43 -0000
@@ -445,7 +445,6 @@ struct inode {
        unsigned long           i_version;
        unsigned long           i_blocks;
        unsigned short          i_bytes;
-       unsigned char           i_sock;
        spinlock_t              i_lock; /* i_blocks, i_bytes, maybe i_size */
        struct semaphore        i_sem;
        struct rw_semaphore     i_alloc_sem;
Index: ./net/socket.c
===================================================================
RCS file: /var/lib/cvs/linux-2.6/net/socket.c,v
retrieving revision 1.16
diff -u -p -r1.16 socket.c
--- ./net/socket.c      18 Mar 2005 13:17:56 -0000      1.16
+++ ./net/socket.c      24 Mar 2005 20:56:43 -0000
@@ -437,13 +437,13 @@ struct socket *sockfd_lookup(int fd, int
        }
 
        inode = file->f_dentry->d_inode;
-       if (!inode->i_sock || !(sock = SOCKET_I(inode)))
-       {
+       if (!S_ISSOCK(inode->i_mode)) {
                *err = -ENOTSOCK;
                fput(file);
                return NULL;
        }
 
+       sock = SOCKET_I(inode);
        if (sock->file != file) {
                printk(KERN_ERR "socki_lookup: socket file changed!\n");
                sock->file = file;
@@ -471,7 +471,6 @@ static struct socket *sock_alloc(void)
        sock = SOCKET_I(inode);
 
        inode->i_mode = S_IFSOCK|S_IRWXUGO;
-       inode->i_sock = 1;
        inode->i_uid = current->fsuid;
        inode->i_gid = current->fsgid;
 
Index: ./net/netlink/af_netlink.c
===================================================================
RCS file: /var/lib/cvs/linux-2.6/net/netlink/af_netlink.c,v
retrieving revision 1.20
diff -u -p -r1.20 af_netlink.c
--- ./net/netlink/af_netlink.c  18 Mar 2005 13:18:02 -0000      1.20
+++ ./net/netlink/af_netlink.c  24 Mar 2005 20:56:43 -0000
@@ -563,13 +563,12 @@ static struct sock *netlink_getsockbypid
 struct sock *netlink_getsockbyfilp(struct file *filp)
 {
        struct inode *inode = filp->f_dentry->d_inode;
-       struct socket *socket;
        struct sock *sock;
 
-       if (!inode->i_sock || !(socket = SOCKET_I(inode)))
+       if (!S_ISSOCK(inode->i_mode))
                return ERR_PTR(-ENOTSOCK);
 
-       sock = socket->sk;
+       sock = SOCKET_I(inode)->sk;
        if (sock->sk_family != AF_NETLINK)
                return ERR_PTR(-EINVAL);
 
Index: ./net/unix/garbage.c
===================================================================
RCS file: /var/lib/cvs/linux-2.6/net/unix/garbage.c,v
retrieving revision 1.1
diff -u -p -r1.1 garbage.c
--- ./net/unix/garbage.c        29 Jul 2003 17:02:26 -0000      1.1
+++ ./net/unix/garbage.c        24 Mar 2005 20:56:43 -0000
@@ -100,7 +100,7 @@ static struct sock *unix_get_socket(stru
        /*
         *      Socket ?
         */
-       if (inode->i_sock) {
+       if (S_ISSOCK(inode->i_mode)) {
                struct socket * sock = SOCKET_I(inode);
                struct sock * s = sock->sk;
 

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain

<Prev in Thread] Current Thread [Next in Thread>