aboutsummaryrefslogtreecommitdiffstats
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@redhat.com>2016-12-16 05:02:53 -0500
committerMiklos Szeredi <mszeredi@redhat.com>2016-12-16 05:02:53 -0500
commitbeef5121f3a4d1566c8ab8cd99b4e001862048cf (patch)
treef148d078bc1b781dba22c98a933af9a052be3b4c /net/unix/af_unix.c
parent3e5de27e940d00d8d504dfb96625fb654f641509 (diff)
Revert "af_unix: fix hard linked sockets on overlay"
This reverts commit eb0a4a47ae89aaa0674ab3180de6a162f3be2ddf. Since commit 51f7e52dc943 ("ovl: share inode for hard link") there's no need to call d_real_inode() to check two overlay inodes for equality. Side effect of this revert is that it's no longer possible to connect one socket on overlayfs to one on the underlying layer (something which didn't make sense anyway). Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'net/unix/af_unix.c')
-rw-r--r--net/unix/af_unix.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index 2358f2690ec5..6f72508cccb7 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -315,7 +315,7 @@ static struct sock *unix_find_socket_byinode(struct inode *i)
315 &unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) { 315 &unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) {
316 struct dentry *dentry = unix_sk(s)->path.dentry; 316 struct dentry *dentry = unix_sk(s)->path.dentry;
317 317
318 if (dentry && d_real_inode(dentry) == i) { 318 if (dentry && d_backing_inode(dentry) == i) {
319 sock_hold(s); 319 sock_hold(s);
320 goto found; 320 goto found;
321 } 321 }
@@ -913,7 +913,7 @@ static struct sock *unix_find_other(struct net *net,
913 err = kern_path(sunname->sun_path, LOOKUP_FOLLOW, &path); 913 err = kern_path(sunname->sun_path, LOOKUP_FOLLOW, &path);
914 if (err) 914 if (err)
915 goto fail; 915 goto fail;
916 inode = d_real_inode(path.dentry); 916 inode = d_backing_inode(path.dentry);
917 err = inode_permission(inode, MAY_WRITE); 917 err = inode_permission(inode, MAY_WRITE);
918 if (err) 918 if (err)
919 goto put_fail; 919 goto put_fail;
@@ -1040,7 +1040,7 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
1040 goto out_up; 1040 goto out_up;
1041 } 1041 }
1042 addr->hash = UNIX_HASH_SIZE; 1042 addr->hash = UNIX_HASH_SIZE;
1043 hash = d_real_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE - 1); 1043 hash = d_backing_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE - 1);
1044 spin_lock(&unix_table_lock); 1044 spin_lock(&unix_table_lock);
1045 u->path = path; 1045 u->path = path;
1046 list = &unix_socket_table[hash]; 1046 list = &unix_socket_table[hash];