From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrea Arcangeli Subject: Re: [PATCH] Mask out O_LARGEFILE in F_GETFL Date: Wed, 1 Oct 2003 15:24:01 +0200 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <20031001132401.GK17274@velociraptor.random> References: <20030925052508.GA2374@averell> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: marcelo.tosatti@cyclades.com.br, linux-fsdevel@vger.kernel.org Return-path: Received: from ppp-217-133-42-200.cust-adsl.tiscali.it ([217.133.42.200]:62372 "EHLO velociraptor.random") by vger.kernel.org with ESMTP id S262111AbTJANWd (ORCPT ); Wed, 1 Oct 2003 09:22:33 -0400 To: Andi Kleen Content-Disposition: inline In-Reply-To: <20030925052508.GA2374@averell> List-Id: linux-fsdevel.vger.kernel.org Hi, On Thu, Sep 25, 2003 at 07:25:08AM +0200, Andi Kleen wrote: > > This fixes a test in the LSB test suite. > > The kernel sets O_LARGEFILE implicitely on 64bit hosts. > According to POSIX it should not appear on F_GETFL then. Just mask it out > always. > > This will also mask it out for explicitely set O_LARGEFILE, but that seems > to be ok. > > Any flames for this please to the POSIX comittee, not to me. > > -Andi > > diff -X ../../KDIFX -burpN linux-2.4.23-pre5/fs/fcntl.c linux-merge/fs/fcntl.c > --- linux-2.4.23-pre5/fs/fcntl.c 2002-11-30 00:37:11.000000000 +0100 > +++ linux-merge/fs/fcntl.c 2002-11-30 05:22:20.000000000 +0100 > @@ -270,7 +270,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(); > I guess you got bitten because you're running 64bit where glibc isn't supposed to deal with it. AFIK it's up to glibc to clean it up on 32bit systems if you don't ask for largefile mode. this is what I've on my tree since a long time and it should be the right fix. #if BITS_PER_LONG != 32 err = filp->f_flags & ~O_LARGEFILE; #else err = filp->f_flags; #endif http://www.us.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/2.4.22aa1/00_fcntl_getfl-largefile-1 Andrea - If you prefer relying on open source software, check these links: rsync.kernel.org::pub/scm/linux/kernel/bkcvs/linux-2.[45]/ http://www.cobite.com/cvsps/