From: Andrea Arcangeli <andrea@suse.de>
To: Andi Kleen <ak@suse.de>
Cc: marcelo.tosatti@cyclades.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Drop O_LARGEFILE from F_GETFL for POSIX compliance
Date: Mon, 22 Mar 2004 05:34:54 +0100 [thread overview]
Message-ID: <20040322043454.GL3649@dualathlon.random> (raw)
In-Reply-To: <20040322051318.597ad1f9.ak@suse.de>
On Mon, Mar 22, 2004 at 05:13:18AM +0100, Andi Kleen wrote:
>
> On 64bit architectures open() sets O_LARGEFILE implicitely. This causes the LSB
> testsuite to fail, which checks that F_GETFL only returns the flags set by
> a previous open.
>
> According to the POSIX standards gurus the Linux behaviour is not compliant.
>
> This patch fixes this by just not reporting O_LARGEFILE in F_GETFL.
>
> This has been in several shipping SuSE releases and the x86-64.org CVS
> treee for a long time, so is unlikely to break anything.
>
> -Andi
>
> diff -burpN -X ../KDIFX linux-2.4.26-pre5/fs/fcntl.c linux-merge/fs/fcntl.c
> --- linux-2.4.26-pre5/fs/fcntl.c 2004-01-13 10:29:17.000000000 +0100
> +++ linux-merge/fs/fcntl.c 2003-10-23 15:40:52.000000000 +0200
> @@ -271,7 +271,7 @@ static long do_fcntl(unsigned int fd, un
> set_close_on_exec(fd, arg&1);
> break;
> case F_GETFL:
> - err = filp->f_flags;
> + err = filp->f_flags & ~O_LARGEFILE;
> break;
> case F_SETFL:
> lock_kernel();
> -
in my 2.4 tree I have this one instead (written in oct 2002):
--- x/fs/fcntl.c.~1~ Wed Oct 16 17:26:27 2002
+++ x/fs/fcntl.c Wed Oct 16 17:27:43 2002
@@ -277,7 +277,11 @@ static long do_fcntl(unsigned int fd, un
set_close_on_exec(fd, arg&1);
break;
case F_GETFL:
+#if BITS_PER_LONG != 32
+ err = filp->f_flags & ~O_LARGEFILE;
+#else
err = filp->f_flags;
+#endif
break;
case F_SETFL:
err = setfl(fd, filp, arg);
32bit archs needs to get O_LARGEFILE in return from getfl (if they set
it [it's not set implicitly in 32bit archs] they will be able to handle
it transparently in glibc too, and I believe they really want it). 64bit
archs not, hence the fix.
next prev parent reply other threads:[~2004-03-22 4:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-22 4:13 [PATCH] Drop O_LARGEFILE from F_GETFL for POSIX compliance Andi Kleen
2004-03-22 4:29 ` Nicholas Miell
2004-03-22 4:34 ` Andrea Arcangeli [this message]
2004-03-22 4:45 ` Andi Kleen
2004-03-22 5:07 ` Andrea Arcangeli
2004-03-22 5:39 ` Andrew Morton
2004-03-22 6:14 ` Andi Kleen
2004-03-22 7:04 ` Ulrich Drepper
2004-03-22 7:09 ` Andi Kleen
2004-03-22 7:08 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040322043454.GL3649@dualathlon.random \
--to=andrea@suse.de \
--cc=ak@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo.tosatti@cyclades.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.