From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw0-f180.google.com ([209.85.161.180]:36706 "EHLO mail-yw0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751389AbcHWLgy (ORCPT ); Tue, 23 Aug 2016 07:36:54 -0400 Received: by mail-yw0-f180.google.com with SMTP id u134so70252984ywg.3 for ; Tue, 23 Aug 2016 04:36:24 -0700 (PDT) Message-ID: <1471952179.13027.3.camel@redhat.com> Subject: Re: [glibc PATCH] fcntl: put F_OFD_* constants under #ifdef __USE_FILE_OFFSET64 From: Jeff Layton To: Cyril Hrubis , Florian Weimer Cc: Mike Frysinger , "Michael Kerrisk (man-pages)" , libc-alpha@sourceware.org, linux-fsdevel@vger.kernel.org, Carlos O'Donell , Yuriy Kolerov Date: Tue, 23 Aug 2016 07:36:19 -0400 In-Reply-To: <20160823110343.GA4962@rei.suse.cz> References: <1471445251-2450-1-git-send-email-jlayton@redhat.com> <20160817184333.GC21655@vapier.lan> <1471461304.3196.101.camel@redhat.com> <1471464343.3196.125.camel@redhat.com> <20160817203746.GF21655@vapier.lan> <1471467478.3196.143.camel@redhat.com> <20160817213522.GG21655@vapier.lan> <1471470526.3196.153.camel@redhat.com> <8e1a972a-7966-139b-9d75-6d3a847a1be8@redhat.com> <20160823110343.GA4962@rei.suse.cz> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue, 2016-08-23 at 13:03 +0200, Cyril Hrubis wrote: > Hi! > > > > > > > > So yeah, I think what I proposed before would probably be fine. > > > But now > > > that Michael pushed the issue, it's dawned on me that we may be > > > able to > > > get away with supporting it better if we turn the compatability > > > mechanism on its head and use F_OFD_*32 constants in the non-LFS > > > case. > > > > That's rather confusing to programmers, though. > > > > We then have: > > > > F_OFD_SETLK     always 64-bit > > F_SETLK         32-bit or 64-bit > > F_SETLK64       always 64-bit (not recommended) > > F_OFD_SETLK32   always 32-bit > > It's even worse, the F_OFD_SETLK32 in the proposed patch behaves > exactly > as F_SETLK so it's 32-bit or 64-bit depending on sizeof(long) in the > kernel, that is because the compat fcntl64 converts struct flock from > userspace to kernel struct flock and just call sys_fcntl() with the > cmd > it has. So in the end if you call fcntl with F_OFD_SETLK32 on 64bit > kernel it expects flock64. > To be clear, that approach was NAK'ed by Christoph (and I think that's a good thing, actually -- one more nail in the non-LFS coffin). I think what we want merged into glibc is this patch that I sent late on Thursday: [glibc PATCHv2] fcntl: don't define OFD lock constants for 32-bit builds with small file offsets We'll also need your patch to the fcntl(2) manpage as well, but that's a separate problem. -- Jeff Layton