cleanup: rewrite new_dentry_private data more simply
authorErez_Zadok <ezk@cs.sunysb.edu>
Sun, 3 Jun 2007 06:27:37 +0000 (02:27 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Sat, 16 Aug 2014 02:26:59 +0000 (22:26 -0400)
Also remove unnecessary variables and statements.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/lookup.c

index b38086b82902af2d211cace565b0ea54596fc1c8..98a05a8f29d87bb3de83474da6d9586afc088c75 100644 (file)
@@ -483,23 +483,18 @@ int new_dentry_private_data(struct dentry *dentry)
        int size;
        struct unionfs_dentry_info *info = UNIONFS_D(dentry);
        void *p;
-       int unlock_on_err = 0;
 
-       if (!info) {
-               dentry->d_fsdata = kmem_cache_alloc(unionfs_dentry_cachep,
-                                                   GFP_ATOMIC);
-               info = UNIONFS_D(dentry);
-               if (!info)
-                       goto out;
-
-               mutex_init(&info->lock);
-               unionfs_lock_dentry(dentry);
-               unlock_on_err = 1;
+       BUG_ON(info);
 
-               info->lower_paths = NULL;
-       }
+       dentry->d_fsdata = kmem_cache_alloc(unionfs_dentry_cachep,
+                                           GFP_ATOMIC);
+       info = UNIONFS_D(dentry);
+       if (!info)
+         goto out;
 
-       mutex_lock(&info->lock);
+       mutex_init(&info->lock);
+       info->lower_paths = NULL;
+       unionfs_lock_dentry(dentry);
 
        info->bstart = info->bend = info->bopaque = -1;
        info->bcount = sbmax(dentry->d_sb);
@@ -518,10 +513,7 @@ int new_dentry_private_data(struct dentry *dentry)
        return 0;
 
 out_free:
-       kfree(info->lower_paths);
-       if (unlock_on_err)
-               unionfs_unlock_dentry(dentry);
-
+       unionfs_unlock_dentry(dentry);
 out:
        free_dentry_private_data(info);
        dentry->d_fsdata = NULL;