diff options
Diffstat (limited to 'net/unix/af_unix.c')
-rw-r--r-- | net/unix/af_unix.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 8b8f5e6d20bc..5266ea7b922b 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -305,7 +305,7 @@ static struct sock *unix_find_socket_byinode(struct inode *i) | |||
305 | &unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) { | 305 | &unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) { |
306 | struct dentry *dentry = unix_sk(s)->path.dentry; | 306 | struct dentry *dentry = unix_sk(s)->path.dentry; |
307 | 307 | ||
308 | if (dentry && dentry->d_inode == i) { | 308 | if (dentry && d_backing_inode(dentry) == i) { |
309 | sock_hold(s); | 309 | sock_hold(s); |
310 | goto found; | 310 | goto found; |
311 | } | 311 | } |
@@ -778,7 +778,7 @@ static struct sock *unix_find_other(struct net *net, | |||
778 | err = kern_path(sunname->sun_path, LOOKUP_FOLLOW, &path); | 778 | err = kern_path(sunname->sun_path, LOOKUP_FOLLOW, &path); |
779 | if (err) | 779 | if (err) |
780 | goto fail; | 780 | goto fail; |
781 | inode = path.dentry->d_inode; | 781 | inode = d_backing_inode(path.dentry); |
782 | err = inode_permission(inode, MAY_WRITE); | 782 | err = inode_permission(inode, MAY_WRITE); |
783 | if (err) | 783 | if (err) |
784 | goto put_fail; | 784 | goto put_fail; |
@@ -905,7 +905,7 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) | |||
905 | goto out_up; | 905 | goto out_up; |
906 | } | 906 | } |
907 | addr->hash = UNIX_HASH_SIZE; | 907 | addr->hash = UNIX_HASH_SIZE; |
908 | hash = path.dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1); | 908 | hash = d_backing_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE-1); |
909 | spin_lock(&unix_table_lock); | 909 | spin_lock(&unix_table_lock); |
910 | u->path = path; | 910 | u->path = path; |
911 | list = &unix_socket_table[hash]; | 911 | list = &unix_socket_table[hash]; |