[PATCH] sys_open() cleanup
[pandora-kernel.git] / fs / open.c
index 5dd411b..8ec63f7 100644 (file)
--- a/fs/open.c
+++ b/fs/open.c
@@ -934,7 +934,7 @@ EXPORT_SYMBOL(fd_install);
 asmlinkage long sys_open(const char __user * filename, int flags, int mode)
 {
        char * tmp;
-       int fd, error;
+       int fd;
 
        if (force_o_largefile())
                flags |= O_LARGEFILE;
@@ -945,20 +945,16 @@ asmlinkage long sys_open(const char __user * filename, int flags, int mode)
                fd = get_unused_fd();
                if (fd >= 0) {
                        struct file *f = filp_open(tmp, flags, mode);
-                       error = PTR_ERR(f);
-                       if (IS_ERR(f))
-                               goto out_error;
-                       fd_install(fd, f);
+                       if (IS_ERR(f)) {
+                               put_unused_fd(fd);
+                               fd = PTR_ERR(f);
+                       } else {
+                               fd_install(fd, f);
+                       }
                }
-out:
                putname(tmp);
        }
        return fd;
-
-out_error:
-       put_unused_fd(fd);
-       fd = error;
-       goto out;
 }
 EXPORT_SYMBOL_GPL(sys_open);