Esempio n. 1
0
static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags)
{
	struct inode * inode = NULL;
	ino_t ino;

	if (dentry->d_name.len > SYSV_NAMELEN)
		return ERR_PTR(-ENAMETOOLONG);
	ino = sysv_inode_by_name(dentry);

	if (ino) {
		inode = sysv_iget(dir->i_sb, ino);
		if (IS_ERR(inode))
			return ERR_CAST(inode);
	}
	d_add(dentry, inode);
	return NULL;
}
Esempio n. 2
0
static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, struct nameidata *nd)
{
    struct inode * inode = NULL;
    ino_t ino;

    dentry->d_op = dir->i_sb->s_root->d_op;
    if (dentry->d_name.len > SYSV_NAMELEN)
        return ERR_PTR(-ENAMETOOLONG);
    ino = sysv_inode_by_name(dentry);

    if (ino) {
        inode = sysv_iget(dir->i_sb, ino);
        if (IS_ERR(inode))
            return ERR_CAST(inode);
    }
    d_add(dentry, inode);
    return NULL;
}