[PATCH] switch all filesystems over to d_obtain_alias
Switch all users of d_alloc_anon to d_obtain_alias. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
committed by
Al Viro
parent
4ea3ada295
commit
440037287c
@@ -1057,8 +1057,6 @@ static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, str
|
||||
struct dentry *ext3_get_parent(struct dentry *child)
|
||||
{
|
||||
unsigned long ino;
|
||||
struct dentry *parent;
|
||||
struct inode *inode;
|
||||
struct dentry dotdot;
|
||||
struct ext3_dir_entry_2 * de;
|
||||
struct buffer_head *bh;
|
||||
@@ -1068,7 +1066,6 @@ struct dentry *ext3_get_parent(struct dentry *child)
|
||||
dotdot.d_parent = child; /* confusing, isn't it! */
|
||||
|
||||
bh = ext3_find_entry(&dotdot, &de);
|
||||
inode = NULL;
|
||||
if (!bh)
|
||||
return ERR_PTR(-ENOENT);
|
||||
ino = le32_to_cpu(de->inode);
|
||||
@@ -1080,16 +1077,7 @@ struct dentry *ext3_get_parent(struct dentry *child)
|
||||
return ERR_PTR(-EIO);
|
||||
}
|
||||
|
||||
inode = ext3_iget(child->d_inode->i_sb, ino);
|
||||
if (IS_ERR(inode))
|
||||
return ERR_CAST(inode);
|
||||
|
||||
parent = d_alloc_anon(inode);
|
||||
if (!parent) {
|
||||
iput(inode);
|
||||
parent = ERR_PTR(-ENOMEM);
|
||||
}
|
||||
return parent;
|
||||
return d_obtain_alias(ext3_iget(child->d_inode->i_sb, ino));
|
||||
}
|
||||
|
||||
#define S_SHIFT 12
|
||||
|
Reference in New Issue
Block a user