Show a cover letter.

GET /api/covers/2197410/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2197410,
    "url": "http://patchwork.ozlabs.org/api/covers/2197410/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-cifs-client/cover/20260217214741.1928576-1-cel@kernel.org/",
    "project": {
        "id": 12,
        "url": "http://patchwork.ozlabs.org/api/projects/12/?format=api",
        "name": "Linux CIFS Client",
        "link_name": "linux-cifs-client",
        "list_id": "linux-cifs.vger.kernel.org",
        "list_email": "linux-cifs@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260217214741.1928576-1-cel@kernel.org>",
    "list_archive_url": null,
    "date": "2026-02-17T21:47:24",
    "name": "[v8,00/17] Subject: Exposing case folding behavior",
    "submitter": {
        "id": 86689,
        "url": "http://patchwork.ozlabs.org/api/people/86689/?format=api",
        "name": "Chuck Lever",
        "email": "cel@kernel.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-cifs-client/cover/20260217214741.1928576-1-cel@kernel.org/mbox/",
    "series": [
        {
            "id": 492484,
            "url": "http://patchwork.ozlabs.org/api/series/492484/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-cifs-client/list/?series=492484",
            "date": "2026-02-17T21:47:24",
            "name": "Subject: Exposing case folding behavior",
            "version": 8,
            "mbox": "http://patchwork.ozlabs.org/series/492484/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2197410/comments/",
    "headers": {
        "Return-Path": "\n <linux-cifs+bounces-9415-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-cifs@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=kIzruJhN;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-cifs+bounces-9415-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"kIzruJhN\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fFtYB7526z1xwr\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 18 Feb 2026 08:47:58 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id EFD95301F304\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 21:47:48 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E5F8F2FA0D3;\n\tTue, 17 Feb 2026 21:47:46 +0000 (UTC)",
            "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C064D2F5308;\n\tTue, 17 Feb 2026 21:47:46 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id 20653C4CEF7;\n\tTue, 17 Feb 2026 21:47:44 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771364866; cv=none;\n b=KEOIfs3XEQwhgFxBxK7hlcC28NM2laTekmVhpn81pcETKU4gaUDd9mt7jWYd7QN9yU6MDUTKUkyRG9N3OhLccKBDh8HSmHTFp98ce3Mg5wN3H6v8byV3uQHFi3NH7dBDO1tRsTqk8l8L1VvlSk2rNiCCHBRXrZX4qFLInTVpsM8=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771364866; c=relaxed/simple;\n\tbh=uFarXmlAvCx7b/yKLd2k3+58CR08lbeRk5TkvQs+/0A=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=HlMSptfcODhj+J7P26x2IMFqCLI2YGqYl/KGlTVs6oil95mw/ZkLGVSxxS7fHRu9ZHL6rjYa5NUK0RZ0hK2gITZN75GWtqsEHP89av3b011xxlA+f60cz+KSziDcP3h7fgl3avqQXMW9Z4G7I8w5SH9gMefEV3XrQK2VIx6R40s=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=kIzruJhN; arc=none smtp.client-ip=10.30.226.201",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1771364866;\n\tbh=uFarXmlAvCx7b/yKLd2k3+58CR08lbeRk5TkvQs+/0A=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=kIzruJhNO4cS4+JtGZE7/hXD1JcWKjVgWD2RAuLpE9FMTZYBbThGG6LTSUbnPCeP/\n\t yW28Wceq4gziBpRxYmKoWIBIPu+gq627IXmtV9vubGkoPR9gfQ9AXVFcNEySjRhVsV\n\t Sctbj1BoiWbThrTw5ErOYyg6d+sKi15pyJg5ptfIBQecMeTsE8SZaYG6B0FXR3j1Tz\n\t EKFaxCFfwq1+khuL39yNVwTTREW2nTOGwrPdJ5AOOCGZAkxWocBF0+WOA/y3sYUgZH\n\t reyhUsSf3ntIMtApoeWWghJHKzmgKwadrTfjZFq6PBLYMVvQNAwbToQZWJvpCbH0oY\n\t m01n2mn6owqrQ==",
        "From": "Chuck Lever <cel@kernel.org>",
        "To": "Al Viro <viro@zeniv.linux.org.uk>,\n\tChristian Brauner <brauner@kernel.org>,\n\tJan Kara <jack@suse.cz>",
        "Cc": "linux-fsdevel@vger.kernel.org,\n\tlinux-ext4@vger.kernel.org,\n\tlinux-xfs@vger.kernel.org,\n\tlinux-cifs@vger.kernel.org,\n\tlinux-nfs@vger.kernel.org,\n\tlinux-api@vger.kernel.org,\n\tlinux-f2fs-devel@lists.sourceforge.net,\n\thirofumi@mail.parknet.co.jp,\n\tlinkinjeon@kernel.org,\n\tsj1557.seo@samsung.com,\n\tyuezhang.mo@sony.com,\n\talmaz.alexandrovich@paragon-software.com,\n\tslava@dubeyko.com,\n\tglaubitz@physik.fu-berlin.de,\n\tfrank.li@vivo.com,\n\ttytso@mit.edu,\n\tadilger.kernel@dilger.ca,\n\tcem@kernel.org,\n\tsfrench@samba.org,\n\tpc@manguebit.org,\n\tronniesahlberg@gmail.com,\n\tsprasad@microsoft.com,\n\ttrondmy@kernel.org,\n\tanna@kernel.org,\n\tjaegeuk@kernel.org,\n\tchao@kernel.org,\n\thansg@kernel.org,\n\tsenozhatsky@chromium.org,\n\tChuck Lever <chuck.lever@oracle.com>",
        "Subject": "[PATCH v8 00/17] Subject: Exposing case folding behavior",
        "Date": "Tue, 17 Feb 2026 16:47:24 -0500",
        "Message-ID": "<20260217214741.1928576-1-cel@kernel.org>",
        "X-Mailer": "git-send-email 2.53.0",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-cifs@vger.kernel.org",
        "List-Id": "<linux-cifs.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-cifs+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-cifs+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit"
    },
    "content": "From: Chuck Lever <chuck.lever@oracle.com>\n\nFollowing on from\n\nhttps://lore.kernel.org/linux-nfs/20251021-zypressen-bazillus-545a44af57fd@brauner/T/#m0ba197d75b7921d994cf284f3cef3a62abb11aaa\n\nI'm attempting to implement enough support in the Linux VFS to\nenable file services like NFSD and ksmbd (and user space\nequivalents) to provide the actual status of case folding support\nin local file systems. The default behavior for local file systems\nnot explicitly supported in this series is to reflect the usual\nPOSIX behaviors:\n\n  case-insensitive = false\n  case-nonpreserving = true\n\nThe case-insensitivity and case-nonpreserving booleans can be\nconsumed immediately by NFSD. These two attributes have been part of\nthe NFSv3 and NFSv4 protocols for decades, in order to support NFS\nclient implementations on non-POSIX systems.\n\nSupport for user space file servers is why this series exposes case\nfolding information via a user-space API. I don't know of any other\ncategory of user-space application that requires access to case\nfolding info.\n\n\nThe Linux NFS community has a growing interest in supporting NFS\nclients on Windows and MacOS platforms, where file name behavior does\nnot align with traditional POSIX semantics.\n\nOne example of a Windows-based NFS client is [1]. This client\nimplementation explicitly requires servers to report\nFATTR4_WORD0_CASE_INSENSITIVE = TRUE for proper operation, a hard\nrequirement for Windows client interoperability because Windows\napplications expect case-insensitive behavior. When an NFS client\nknows the server is case-insensitive, it can avoid issuing multiple\nLOOKUP/READDIR requests to search for case variants, and applications\nlike Win32 programs work correctly without manual workarounds or\ncode changes.\n\nEven the Linux client can take advantage of this information. Trond\nmerged patches 4 years ago [2] that introduce support for case\ninsensitivity, in support of the Hammerspace NFS server. In\nparticular, when a client detects a case-insensitive NFS share,\nnegative dentry caching must be disabled (a lookup for \"FILE.TXT\"\nfailing shouldn't cache a negative entry when \"file.txt\" exists)\nand directory change invalidation must clear all cached case-folded\nfile name variants.\n\nHammerspace servers and several other NFS server implementations\noperate in multi-protocol environments, where a single file service\ninstance caters to both NFS and SMB clients. In those cases, things\nwork more smoothly for everyone when the NFS client can see and adapt\nto the case folding behavior that SMB users rely on and expect. NFSD\nneeds to support the case-insensitivity and case-nonpreserving\nbooleans properly in order to participate as a first-class citizen\nin such environments.\n\nSeries based on 9702969978695d9a699a1f34771580cdbb153b33\n\n[1] https://github.com/kofemann/ms-nfs41-client\n\n[2] https://patchwork.kernel.org/project/linux-nfs/cover/20211217203658.439352-1-trondmy@kernel.org/\n\n---\n\nChanges since v7:\n- Split file_attr initialization changes into a separate patch\n\nChanges since v6:\n- Remove the memset from vfs_fileattr_get\n\nChanges since v5:\n- Finish the conversion to FS_XFLAGs\n- NFSv4 GETATTR now clears the attr mask bit if nfsd_get_case_info()\n  fails\n\nChanges since v4:\n- Observe the MSDOS \"nocase\" mount option\n- Define new FS_XFLAGs for the user API\n\nChanges since v3:\n- Change fa->case_preserving to fa_case_nonpreserving\n- VFAT is case preserving\n- Make new fields available to user space\n\nChanges since v2:\n- Remove unicode labels\n- Replace vfs_get_case_info\n- Add support for several more local file system implementations\n- Add support for in-kernel SMB server\n\nChanges since RFC:\n- Use file_getattr instead of statx\n- Postpone exposing Unicode version until later\n- Support NTFS and ext4 in addition to FAT\n- Support NFSv4 fattr4 in addition to NFSv3 PATHCONF\n\n\nChuck Lever (17):\n  fs: Move file_kattr initialization to callers\n  fs: Add case sensitivity flags to file_kattr\n  fat: Implement fileattr_get for case sensitivity\n  exfat: Implement fileattr_get for case sensitivity\n  ntfs3: Implement fileattr_get for case sensitivity\n  hfs: Implement fileattr_get for case sensitivity\n  hfsplus: Report case sensitivity in fileattr_get\n  ext4: Report case sensitivity in fileattr_get\n  xfs: Report case sensitivity in fileattr_get\n  cifs: Implement fileattr_get for case sensitivity\n  nfs: Implement fileattr_get for case sensitivity\n  f2fs: Add case sensitivity reporting to fileattr_get\n  vboxsf: Implement fileattr_get for case sensitivity\n  isofs: Implement fileattr_get for case sensitivity\n  nfsd: Report export case-folding via NFSv3 PATHCONF\n  nfsd: Implement NFSv4 FATTR4_CASE_INSENSITIVE and\n    FATTR4_CASE_PRESERVING\n  ksmbd: Report filesystem case sensitivity via FS_ATTRIBUTE_INFORMATION\n\n fs/exfat/exfat_fs.h      |  2 ++\n fs/exfat/file.c          | 16 ++++++++++++++--\n fs/exfat/namei.c         |  1 +\n fs/ext4/ioctl.c          |  7 +++++++\n fs/f2fs/file.c           |  7 +++++++\n fs/fat/fat.h             |  3 +++\n fs/fat/file.c            | 22 ++++++++++++++++++++++\n fs/fat/namei_msdos.c     |  1 +\n fs/fat/namei_vfat.c      |  1 +\n fs/file_attr.c           | 18 +++++++++---------\n fs/hfs/dir.c             |  1 +\n fs/hfs/hfs_fs.h          |  2 ++\n fs/hfs/inode.c           | 13 +++++++++++++\n fs/hfsplus/inode.c       |  8 ++++++++\n fs/isofs/dir.c           | 15 +++++++++++++++\n fs/nfs/client.c          |  9 +++++++--\n fs/nfs/inode.c           | 20 ++++++++++++++++++++\n fs/nfs/internal.h        |  3 +++\n fs/nfs/nfs3proc.c        |  2 ++\n fs/nfs/nfs3xdr.c         |  7 +++++--\n fs/nfs/nfs4proc.c        |  2 ++\n fs/nfs/proc.c            |  3 +++\n fs/nfs/symlink.c         |  3 +++\n fs/nfsd/nfs3proc.c       | 18 ++++++++++--------\n fs/nfsd/nfs4xdr.c        | 31 +++++++++++++++++++++++++++----\n fs/nfsd/vfs.c            | 25 +++++++++++++++++++++++++\n fs/nfsd/vfs.h            |  2 ++\n fs/ntfs3/file.c          | 23 +++++++++++++++++++++++\n fs/ntfs3/inode.c         |  1 +\n fs/ntfs3/namei.c         |  2 ++\n fs/ntfs3/ntfs_fs.h       |  1 +\n fs/smb/client/cifsfs.c   | 20 ++++++++++++++++++++\n fs/smb/server/smb2pdu.c  | 25 +++++++++++++++++++------\n fs/vboxsf/dir.c          |  1 +\n fs/vboxsf/file.c         |  6 ++++--\n fs/vboxsf/super.c        |  4 ++++\n fs/vboxsf/utils.c        | 31 +++++++++++++++++++++++++++++++\n fs/vboxsf/vfsmod.h       |  6 ++++++\n fs/xfs/xfs_ioctl.c       |  9 ++++++++-\n include/linux/fileattr.h |  3 ++-\n include/linux/nfs_xdr.h  |  2 ++\n include/uapi/linux/fs.h  |  7 +++++++\n 42 files changed, 346 insertions(+), 37 deletions(-)"
}