[nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file minimum requirement RFC?
Thomas Haynes <loghyr@gmail.com> Mon, 02 March 2026 16:24 UTC
Return-Path: <loghyr@gmail.com>
X-Original-To: nfsv4@mail2.ietf.org
Delivered-To: nfsv4@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 577EFC22CCF7 for <nfsv4@mail2.ietf.org>; Mon, 2 Mar 2026 08:24:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.098
X-Spam-Level:
X-Spam-Status: No, score=-1.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p2AMTOEF0b9n for <nfsv4@mail2.ietf.org>; Mon, 2 Mar 2026 08:24:01 -0800 (PST)
Received: from mail-dl1-x1231.google.com (mail-dl1-x1231.google.com [IPv6:2607:f8b0:4864:20::1231]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id A78A3C22CCEE for <nfsv4@ietf.org>; Mon, 2 Mar 2026 08:24:01 -0800 (PST)
Received: by mail-dl1-x1231.google.com with SMTP id a92af1059eb24-1270ac5d3efso4409107c88.1 for <nfsv4@ietf.org>; Mon, 02 Mar 2026 08:24:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772468641; x=1773073441; darn=ietf.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=ba+0paYP3L0LCb1tYtCMxhAEGkaOAieWz8p4JWsPjEg=; b=SknmwbS7i7vxO1JtyYZ+IRx4HBl5nMjyO2PDZPeVogqvn/gYVecnbDoc6/a97yRWKG /MU97IoA/6pXy/+/9mY6xB79amC9bZmwXcDmGehauvCpyHlyN+1f+pjq2xo3+OfSbkVT YDaqywq9vwrSRBuOL0ygBQVVX2jvn+OaMkQK+ZLjbFLj7Idv37yIdU/r+D4OJvx5w10I qaNUVa154xM7w+RLFKveXQrvZw4x0rlSVudOXRjQRxmDInCVvZ8EOAKhAiCo2cGo8cgt s4erscqimyy/VFMHvL4KsoRjCCq1gL9dwiLZC8LZD6/1BHt0S97MSoGrvgLTXA3gQy62 RZIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772468641; x=1773073441; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ba+0paYP3L0LCb1tYtCMxhAEGkaOAieWz8p4JWsPjEg=; b=bo4XXUjB9ueoAYW2lG3cnRoRkGn86JrZr8tYJh7jVZ1whj2jjZYJRTe+pfl1ciAWO3 d/2AH/EfX2eQ1lJv1I3ALJgFS5RWF5z3rMbj0I8GzOUdWPIp/erOWwfN2/AEv7y92XXu 2S4vo5Hg29U7leCeohJxHpHn3/lKKEfjGB/GYppMK+lLCt2lOAmFPBeffDLnCkH2dGhn K1lOf1Q92pVDox6kc0GVC7f96m86MRI9TiyUUCetQIO0lBJFnSvwkWXEJ0znOatQPN7R UrDmqym+tvgs94XT/UQ+dKbzuJQ/fsie+pDVLu5DBmaZNCO0aFWpInA1NG6c3sL/PaV2 psFQ==
X-Gm-Message-State: AOJu0YwMya7yqoWFDf8USKlAd4lcNvNhuQosTwIkM/dpm7OhTW/3qKjE ox9g/c6IXc0fINffbzgekRrG1EvP0mYJ7hWcHybsRlzWx4UbQ9QhII9v
X-Gm-Gg: ATEYQzxlHDoK3OyOJXd5/FA8D0Rfpp5gAIY4JNcgzb/yvLvAiQbNJz2C0WJ4tbbW+6w VZEHkZQlo1XOieZKniRx76iF+OW5EmuHKlQPWmT9hQC1tdTo7iTVUGElj5luqfmitX/6Mpe0NMy 1rsQYoUtHUuMQIIEBSO++LRkXzAqWUoizblsCU9W4r1TdDmeIflutDrd7gVDwOr0dzDCB8JIB8y B/s8n4gV8lm4a3FzIZzpvwSv/+OzkSe6Dw6PtzvjNKVzJ2caIqxebrwdN+qAenmjAxQJtWLUQfh Lxjd6eSy3/MQr1ETErZgpeWkHGcHXOBca//q6kPB1gksY/ZUQ8B9j/DOwjjyD8oSAO4B9b0ayWk xCW8ingNGe7igyY8s4YxW9Zu30tVbrfLZIpTL9Z/cKmDNf6vsZxDlM9owWEDXBWxgKzSf+bk06g i7EvpWvBT4qqhjEe1yikNovqhxPY/Fcmnz1+G2S1vpqF3v7xRTTA==
X-Received: by 2002:a05:7300:7308:b0:2bd:b4d6:d9b0 with SMTP id 5a478bee46e88-2bde16ab274mr4250784eec.0.1772468640134; Mon, 02 Mar 2026 08:24:00 -0800 (PST)
Received: from smtpclient.apple ([2600:1700:8490:2ff0:146f:33d7:cc36:a69]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be0c63482csm4108635eec.4.2026.03.02.08.23.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 02 Mar 2026 08:23:59 -0800 (PST)
From: Thomas Haynes <loghyr@gmail.com>
Message-Id: <2AF95C2E-49D4-48ED-BB06-2D63964F95C7@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_9E04ED9E-36DD-4904-BDD7-07F8119A6291"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.400.21\))
Date: Mon, 02 Mar 2026 08:23:48 -0800
In-Reply-To: <CALXu0Uc_cyKzj0R3xzfBnddKdGgY7mPzDFQVBEJ7MjYuKWpwOw@mail.gmail.com>
To: Cedric Blancher <cedric.blancher@gmail.com>
References: <CALXu0Ue0xCpGX=hvjt+oPpj=An29xv_y0-P9-OTXCn5RxRyRQg@mail.gmail.com> <CADaq8jd-1-mzs2QRYVzBbyEMWuTVXb2=XSF7q7Y6EJj_j8L22A@mail.gmail.com> <D24B786C-D178-4C6D-B1BD-BF3356DD5D37@gmail.com> <CALXu0Uc_cyKzj0R3xzfBnddKdGgY7mPzDFQVBEJ7MjYuKWpwOw@mail.gmail.com>
X-Mailer: Apple Mail (2.3864.400.21)
Message-ID-Hash: EKWZBGTNNLMQKDPEF4QOLER6YZLE4HB5
X-Message-ID-Hash: EKWZBGTNNLMQKDPEF4QOLER6YZLE4HB5
X-MailFrom: loghyr@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-nfsv4.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: NFSv4 <nfsv4@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file minimum requirement RFC?
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/cu0nSpzh3fe5tZefeDoVKVtKXNA>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Owner: <mailto:nfsv4-owner@ietf.org>
List-Post: <mailto:nfsv4@ietf.org>
List-Subscribe: <mailto:nfsv4-join@ietf.org>
List-Unsubscribe: <mailto:nfsv4-leave@ietf.org>
> On Mar 2, 2026, at 1:11 AM, Cedric Blancher <cedric.blancher@gmail.com> wrote: > > On Sun, 1 Mar 2026 at 17:40, Thomas Haynes <loghyr@gmail.com <mailto:loghyr@gmail.com>> wrote: >> >> >> >> On Mar 1, 2026, at 4:04 AM, David Noveck <davenoveck@gmail.com> wrote: >> >> >> >> On Sunday, March 1, 2026, Cedric Blancher <cedric.blancher@gmail.com> wrote: >>> >>> Good morning! >>> >>> 1. IMO it may be nice to get a per-fs FATTR4_MIN_HOLE_SIZE attribute >>> to provide a byte-size value for pathconf() _PC_MIN_HOLE_SIZE, . >> >> >> Probably, but if you think we need one, aa I suspect you do, you will have to at least propose that we do that and may have to do more. > > First I wanted feedback, and then I'll do a proposal. > >> >>> to >>> define the "minimum hole size" for sparse files. >> >> >> I don't know much about sparse file support but I am not clear as to limits based on a brief scan of RFC7862. > > https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html > 3.347ff, but I am mostly interested in two things: > 1. Getting a proper value for _PC_MIN_HOLE_SIZE from the filesystem > exported by the NFS server > 2. Detecting early (before opening a file) whether the NFSv4.2 > extensions SEEK, ALLOCATE and DEALLOCATE are supported by the NFS > server and can be implemented on that exported filesystem > > [1] is often different from the default block size, typically smaller > (sometimes by factor 8, e.g. 4096 byte block size --> 512 byte minhole > size, or sometimes by factor 64; or sometimes much larger, say 128k > for 4k block size) > > Question is whether FATTR4_MIN_HOLE_SIZE MUST only be supported IF > NFSv4.2 extensions SEEK, ALLOCATE and DEALLOCATE are available, or a > separate attribute with a bitmap4 is used to set a bit or NFS4 op > supported. > >> >>> >>> >>> (this can be different >>> from the (logical) block size). >> >> >> OK. But I'm not clear about the concept of block size in NFSv4. RFC7862 uses BLOCK_SIZE but I couldn't find a definition of how this value was determined and used. Was not in RFC8881 either. What am I missing? > > I thought NFSv4.x avoids setting a global "block size", as modern > filesystems can use multiple block sizes, or the block size can change > if the file is moved around in a HSM. Take the use of the word BLOCK_SIZE as meaning the size of the blocks on a given filesystem. It has nothing to do with the protocol. It is used purely to illustrate an example. > > FATTR4_MIN_HOLE_SIZE however is different, it does not implement > "block size semantics", it only implements a hint for the minimum size > of sparse file holes. > >> And that is not possible in NFSv4.2 - there are existing implementations of NFSv.4.2 which support these operations and you cannot retroactively change the requirements on them. > > We do not wish to change NFSv4.2, we want a small extension to map > POSIX _PC_MIN_HOLE_SIZE, and maybe a solution to detect which NFS ops > are supported for a given NFS server and exported filesystem. > That does not match up with your repeated use of the word MUST. > Ced > -- > Cedric Blancher <cedric.blancher@gmail.com <mailto:cedric.blancher@gmail.com>> > [https://plus.google.com/u/0/+CedricBlancher/] > Institute Pasteur > > _______________________________________________ > nfsv4 mailing list -- nfsv4@ietf.org <mailto:nfsv4@ietf.org> > To unsubscribe send an email to nfsv4-leave@ietf.org <mailto:nfsv4-leave@ietf.org>
- [nfsv4] FATTR4_MIN_HOLE_SIZE, and sparse file min… Cedric Blancher
- [nfsv4] FATTR4_MIN_HOLE_SIZE, and sparse file min… David Noveck
- [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file… Thomas Haynes
- [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file… Rick Macklem
- [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file… Cedric Blancher
- [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file… Rick Macklem
- [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file… Cedric Blancher
- [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file… Thomas Haynes
- [nfsv4] Re: FATTR4_MIN_HOLE_SIZE, and sparse file… Rick Macklem