OSDN Git Service

f2fs: clean up f2fs_lookup
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 22 Apr 2015 18:40:27 +0000 (11:40 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 28 May 2015 22:41:31 +0000 (15:41 -0700)
This patch cleans up to avoid deep indentation.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/namei.c

index 658e807..a311c3c 100644 (file)
@@ -232,31 +232,32 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
        struct inode *inode = NULL;
        struct f2fs_dir_entry *de;
        struct page *page;
+       nid_t ino;
 
        if (dentry->d_name.len > F2FS_NAME_LEN)
                return ERR_PTR(-ENAMETOOLONG);
 
        de = f2fs_find_entry(dir, &dentry->d_name, &page);
-       if (de) {
-               nid_t ino = le32_to_cpu(de->ino);
-               f2fs_dentry_kunmap(dir, page);
-               f2fs_put_page(page, 0);
+       if (!de)
+               return d_splice_alias(inode, dentry);
 
-               inode = f2fs_iget(dir->i_sb, ino);
-               if (IS_ERR(inode))
-                       return ERR_CAST(inode);
+       ino = le32_to_cpu(de->ino);
+       f2fs_dentry_kunmap(dir, page);
+       f2fs_put_page(page, 0);
 
-               if (f2fs_has_inline_dots(inode)) {
-                       int err;
+       inode = f2fs_iget(dir->i_sb, ino);
+       if (IS_ERR(inode))
+               return ERR_CAST(inode);
+
+       if (f2fs_has_inline_dots(inode)) {
+               int err;
 
-                       err = __recover_dot_dentries(inode, dir->i_ino);
-                       if (err) {
-                               iget_failed(inode);
-                               return ERR_PTR(err);
-                       }
+               err = __recover_dot_dentries(inode, dir->i_ino);
+               if (err) {
+                       iget_failed(inode);
+                       return ERR_PTR(err);
                }
        }
-
        return d_splice_alias(inode, dentry);
 }