Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c5fedbb authored by Al Viro's avatar Al Viro
Browse files

ncp_lookup(): use d_splice_alias()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 293542d8
Loading
Loading
Loading
Loading
+15 −27
Original line number Diff line number Diff line
@@ -823,12 +823,11 @@ static struct dentry *ncp_lookup(struct inode *dir, struct dentry *dentry, unsig
	struct ncp_server *server = NCP_SERVER(dir);
	struct inode *inode = NULL;
	struct ncp_entry_info finfo;
	int error, res, len;
	int res, len;
	__u8 __name[NCP_MAXPATHLEN + 1];

	error = -EIO;
	if (!ncp_conn_valid(server))
		goto finished;
		return ERR_PTR(-EIO);

	ncp_vdbg("server lookup for %pd2\n", dentry);

@@ -847,31 +846,20 @@ static struct dentry *ncp_lookup(struct inode *dir, struct dentry *dentry, unsig
			res = ncp_obtain_info(server, dir, __name, &(finfo.i));
	}
	ncp_vdbg("looked for %pd2, res=%d\n", dentry, res);
	if (!res) {
		/*
	 * If we didn't find an entry, make a negative dentry.
	 */
	if (res)
		goto add_entry;

	/*
	 * Create an inode for the entry.
		 * Entry found; create an inode for it.
		 */
		finfo.opened = 0;
		finfo.ino = iunique(dir->i_sb, 2);
		finfo.volume = finfo.i.volNumber;
	error = -EACCES;
		inode = ncp_iget(dir->i_sb, &finfo);

	if (inode) {
		if (unlikely(!inode))
			inode = ERR_PTR(-EACCES);
		else
			ncp_new_dentry(dentry);
add_entry:
		d_add(dentry, inode);
		error = 0;
	}

finished:
	ncp_vdbg("result=%d\n", error);
	return ERR_PTR(error);
	return d_splice_alias(inode, dentry);
}

/*