From 35fef43540a8959e3e331df7a4a80b7fabeeb746 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Mon, 11 May 2009 14:25:34 -0400 Subject: [PATCH] --- yaml --- r: 144843 b: refs/heads/master c: 2b79bc4f7ebbd5af3c8b867968f9f15602d5f802 h: refs/heads/master i: 144841: 3bdd71c6c658d44bb94057c3b02749012cd0377c 144839: 5d636aae2b8140f12eb43b2776c05b22506ecf90 v: v3 --- [refs] | 2 +- trunk/fs/fcntl.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 407199ca6de8..f63389630484 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fd18de50b9e7965f93d231e7390436fb8900c0e6 +refs/heads/master: 2b79bc4f7ebbd5af3c8b867968f9f15602d5f802 diff --git a/trunk/fs/fcntl.c b/trunk/fs/fcntl.c index cc8e4de2fee5..1ad703150dee 100644 --- a/trunk/fs/fcntl.c +++ b/trunk/fs/fcntl.c @@ -117,11 +117,13 @@ SYSCALL_DEFINE2(dup2, unsigned int, oldfd, unsigned int, newfd) { if (unlikely(newfd == oldfd)) { /* corner case */ struct files_struct *files = current->files; + int retval = oldfd; + rcu_read_lock(); if (!fcheck_files(files, oldfd)) - oldfd = -EBADF; + retval = -EBADF; rcu_read_unlock(); - return oldfd; + return retval; } return sys_dup3(oldfd, newfd, 0); }