From: Andi Kleen <ak@suse.de>
To: Andrew Morton <akpm@osdl.org>
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 07:14:25 +0100 [thread overview]
Message-ID: <20040322071425.3cd57aca.ak@suse.de> (raw)
In-Reply-To: <20040321213944.2fdb980d.akpm@osdl.org>
On Sun, 21 Mar 2004 21:39:44 -0800
Andrew Morton <akpm@osdl.org> wrote:
> Andi Kleen <ak@suse.de> 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();
>
> eh? If the application on a 64-bit box does
>
> open("foo", O_LARGEFILE|O_RDWR);
>
> then a subsequent F_GETFL will now return just O_RDWR, will it not? So
> it's still posixly incorrect?
No, because O_LARGEFILE is not part of POSIX :-) (they use open64 etc.)
> I think open() needs to set O_KERNEL_LARGEFILE, and we mask that off in
> F_GETFL, and test for (O_LARGEFILE|O_KERNEL_LARGEFILE) everywhere.
That would be the best solution, agreed But it would be a lot more intrusive
because all file systems need to be audited and fixed.
-Andi
next prev parent reply other threads:[~2004-03-22 6:14 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
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 [this message]
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=20040322071425.3cd57aca.ak@suse.de \
--to=ak@suse.de \
--cc=akpm@osdl.org \
--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.