diff options
| -rw-r--r-- | fs/ufs/namei.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/ufs/namei.c b/fs/ufs/namei.c index 29309e25417f..b57aab9a1184 100644 --- a/fs/ufs/namei.c +++ b/fs/ufs/namei.c | |||
| @@ -56,16 +56,12 @@ static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, stru | |||
| 56 | 56 | ||
| 57 | lock_ufs(dir->i_sb); | 57 | lock_ufs(dir->i_sb); |
| 58 | ino = ufs_inode_by_name(dir, &dentry->d_name); | 58 | ino = ufs_inode_by_name(dir, &dentry->d_name); |
| 59 | if (ino) { | 59 | if (ino) |
| 60 | inode = ufs_iget(dir->i_sb, ino); | 60 | inode = ufs_iget(dir->i_sb, ino); |
| 61 | if (IS_ERR(inode)) { | ||
| 62 | unlock_ufs(dir->i_sb); | ||
| 63 | return ERR_CAST(inode); | ||
| 64 | } | ||
| 65 | } | ||
| 66 | unlock_ufs(dir->i_sb); | 61 | unlock_ufs(dir->i_sb); |
| 67 | d_add(dentry, inode); | 62 | if (IS_ERR(inode)) |
| 68 | return NULL; | 63 | return ERR_CAST(inode); |
| 64 | return d_splice_alias(inode, dentry); | ||
| 69 | } | 65 | } |
| 70 | 66 | ||
| 71 | /* | 67 | /* |
