mirror of https://gitee.com/openkylin/linux.git
Revert "af_unix: fix hard linked sockets on overlay"
This reverts commiteb0a4a47ae
. Since commit51f7e52dc9
("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>
This commit is contained in:
parent
3e5de27e94
commit
beef5121f3
|
@ -315,7 +315,7 @@ static struct sock *unix_find_socket_byinode(struct inode *i)
|
|||
&unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) {
|
||||
struct dentry *dentry = unix_sk(s)->path.dentry;
|
||||
|
||||
if (dentry && d_real_inode(dentry) == i) {
|
||||
if (dentry && d_backing_inode(dentry) == i) {
|
||||
sock_hold(s);
|
||||
goto found;
|
||||
}
|
||||
|
@ -913,7 +913,7 @@ static struct sock *unix_find_other(struct net *net,
|
|||
err = kern_path(sunname->sun_path, LOOKUP_FOLLOW, &path);
|
||||
if (err)
|
||||
goto fail;
|
||||
inode = d_real_inode(path.dentry);
|
||||
inode = d_backing_inode(path.dentry);
|
||||
err = inode_permission(inode, MAY_WRITE);
|
||||
if (err)
|
||||
goto put_fail;
|
||||
|
@ -1040,7 +1040,7 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
|
|||
goto out_up;
|
||||
}
|
||||
addr->hash = UNIX_HASH_SIZE;
|
||||
hash = d_real_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE - 1);
|
||||
hash = d_backing_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE - 1);
|
||||
spin_lock(&unix_table_lock);
|
||||
u->path = path;
|
||||
list = &unix_socket_table[hash];
|
||||
|
|
Loading…
Reference in New Issue