tree 4a0147ea3f2021091c0ce686dc10225ef0ac7d83
parent 783bc29bbc5d6625a4669d3eb1d989a8fb275d43
author Robert Love <[EMAIL PROTECTED]> Mon, 25 Jul 2005 23:12:19 -0400
committer Linus Torvalds <[EMAIL PROTECTED]> Wed, 27 Jul 2005 03:37:22 -0700

[PATCH] inotify: exit path cleanups

Handle error out paths better.

Signed-off-by: Robert Love <[EMAIL PROTECTED]>
Signed-off-by: John McCutchan <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 fs/inotify.c |   18 ++++++++----------
 1 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/fs/inotify.c b/fs/inotify.c
--- a/fs/inotify.c
+++ b/fs/inotify.c
@@ -865,23 +865,21 @@ asmlinkage long sys_inotify_init(void)
 
        filp = get_empty_filp();
        if (!filp) {
-               put_unused_fd(fd);
                ret = -ENFILE;
-               goto out;
+               goto out_put_fd;
        }
 
        user = get_uid(current->user);
-
        if (unlikely(atomic_read(&user->inotify_devs) >=
                        inotify_max_user_instances)) {
                ret = -EMFILE;
-               goto out_err;
+               goto out_free_uid;
        }
 
        dev = kmalloc(sizeof(struct inotify_device), GFP_KERNEL);
        if (unlikely(!dev)) {
                ret = -ENOMEM;
-               goto out_err;
+               goto out_free_uid;
        }
 
        filp->f_op = &inotify_fops;
@@ -908,11 +906,11 @@ asmlinkage long sys_inotify_init(void)
        fd_install(fd, filp);
 
        return fd;
-out_err:
-       put_unused_fd (fd);
-       put_filp (filp);
+out_free_uid:
        free_uid(user);
-out:
+       put_filp(filp);
+out_put_fd:
+       put_unused_fd(fd);
        return ret;
 }
 
@@ -975,9 +973,9 @@ asmlinkage long sys_inotify_add_watch(in
        list_add(&watch->i_list, &inode->inotify_watches);
        ret = watch->wd;
 out:
-       path_release (&nd);
        up(&dev->sem);
        up(&inode->inotify_sem);
+       path_release(&nd);
 fput_and_out:
        fput_light(filp, fput_needed);
        return ret;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to