diff options
Diffstat (limited to 'fs/hppfs')
| -rw-r--r-- | fs/hppfs/hppfs.c | 19 | 
1 files changed, 3 insertions, 16 deletions
diff --git a/fs/hppfs/hppfs.c b/fs/hppfs/hppfs.c index 7d6a0e92bcf..85c098a499f 100644 --- a/fs/hppfs/hppfs.c +++ b/fs/hppfs/hppfs.c @@ -139,7 +139,8 @@ static int file_removed(struct dentry *dentry, const char *file)  static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry,  				   struct nameidata *nd)  { -	struct dentry *proc_dentry, *new, *parent; +	struct dentry *proc_dentry, *parent; +	struct qstr *name = &dentry->d_name;  	struct inode *inode;  	int err, deleted; @@ -149,23 +150,9 @@ static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry,  	else if (deleted)  		return ERR_PTR(-ENOENT); -	err = -ENOMEM;  	parent = HPPFS_I(ino)->proc_dentry;  	mutex_lock(&parent->d_inode->i_mutex); -	proc_dentry = d_lookup(parent, &dentry->d_name); -	if (proc_dentry == NULL) { -		proc_dentry = d_alloc(parent, &dentry->d_name); -		if (proc_dentry == NULL) { -			mutex_unlock(&parent->d_inode->i_mutex); -			goto out; -		} -		new = (*parent->d_inode->i_op->lookup)(parent->d_inode, -						       proc_dentry, NULL); -		if (new) { -			dput(proc_dentry); -			proc_dentry = new; -		} -	} +	proc_dentry = lookup_one_len(name->name, parent, name->len);  	mutex_unlock(&parent->d_inode->i_mutex);  	if (IS_ERR(proc_dentry))  |