From c1dd745926308f9e620195b4c4d0ef85baf5961a Mon Sep 17 00:00:00 2001 From: Telemaque Ndizihiwe Date: Thu, 23 Jun 2005 00:10:33 -0700 Subject: [PATCH] --- yaml --- r: 2990 b: refs/heads/master c: fed2fc18a4567d613cd35115322257c6c6c710e9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/open.c | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 6c0dc6536dd0..5ec993fa6507 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 64ccd715d3cf498318b14b646ce5f97e7ab15bb5 +refs/heads/master: fed2fc18a4567d613cd35115322257c6c6c710e9 diff --git a/trunk/fs/open.c b/trunk/fs/open.c index 5dd411b084bf..8ec63f735918 100644 --- a/trunk/fs/open.c +++ b/trunk/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);