Skip to content

Commit

Permalink
simplify gfs2_lookup()
Browse files Browse the repository at this point in the history
d_splice_alias() will DTRT when given NULL or ERR_PTR

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Jul 21, 2011
1 parent 79ac5a4 commit 6c673ab
Showing 1 changed file with 3 additions and 11 deletions.
14 changes: 3 additions & 11 deletions fs/gfs2/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -792,13 +792,8 @@ static int gfs2_create(struct inode *dir, struct dentry *dentry,
static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry,
struct nameidata *nd)
{
struct inode *inode = NULL;

inode = gfs2_lookupi(dir, &dentry->d_name, 0);
if (inode && IS_ERR(inode))
return ERR_CAST(inode);

if (inode) {
struct inode *inode = gfs2_lookupi(dir, &dentry->d_name, 0);
if (inode && !IS_ERR(inode)) {
struct gfs2_glock *gl = GFS2_I(inode)->i_gl;
struct gfs2_holder gh;
int error;
Expand All @@ -808,11 +803,8 @@ static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry,
return ERR_PTR(error);
}
gfs2_glock_dq_uninit(&gh);
return d_splice_alias(inode, dentry);
}
d_add(dentry, inode);

return NULL;
return d_splice_alias(inode, dentry);
}

/**
Expand Down

0 comments on commit 6c673ab

Please sign in to comment.