Show a cover letter.

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

{
    "id": 2226972,
    "url": "http://patchwork.ozlabs.org/api/covers/2226972/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-cifs-client/cover/20260422-case-sensitivity-v9-0-be023cc070e2@oracle.com/",
    "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": "<20260422-case-sensitivity-v9-0-be023cc070e2@oracle.com>",
    "list_archive_url": null,
    "date": "2026-04-22T23:29:54",
    "name": "[v9,00/17] 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/20260422-case-sensitivity-v9-0-be023cc070e2@oracle.com/mbox/",
    "series": [
        {
            "id": 501130,
            "url": "http://patchwork.ozlabs.org/api/series/501130/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-cifs-client/list/?series=501130",
            "date": "2026-04-22T23:29:54",
            "name": "Exposing case folding behavior",
            "version": 9,
            "mbox": "http://patchwork.ozlabs.org/series/501130/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2226972/comments/",
    "headers": {
        "Return-Path": "\n <linux-cifs+bounces-11013-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=N6+HGFyh;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-cifs+bounces-11013-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=\"N6+HGFyh\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1Fnx32FYz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 09:30:29 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 188DB302DF56\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 23:30:19 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 91DC535F5F1;\n\tWed, 22 Apr 2026 23:30:17 +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 6BA14346AE3;\n\tWed, 22 Apr 2026 23:30:17 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id E1496C19425;\n\tWed, 22 Apr 2026 23:30:14 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776900617; cv=none;\n b=hrBvZSaVQUbgx8aBN2giyXYPL8WdmBnZ4+2uScJWAzmI8Osv/uPdDzMaEt2puldP+QGlB8IM+ka7GW+Pl8iGq34DqZQqs/FlZ3SLbiIK5LdN39Ob9kPgG7Slj8ZjKOnN+ipn5r5iiy/znyvU21Q6boRMtUQ86JIQ7cQ2BIFJXlI=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776900617; c=relaxed/simple;\n\tbh=nSWvRvVLvvSZdli9CnC8hr1bXPfPcgp+ZC3UK68WE7E=;\n\th=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc;\n b=Nd2gWYMS3GKNOZNUOl9ebDaSBuumZjML2ooQB7aGDUNytmyWUQuIXP+W3sFTGqMkkqivVe5iaVLSSy7DqRA6/GQCyGx13KIYW8uoOuhOapVTn9s0fwBhDkmMXDt+7vYoPcgdax0Qrc1D25SLd2EUO7mnE+iJRPOVS4JS8CHKwAo=",
        "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=N6+HGFyh; 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=1776900617;\n\tbh=nSWvRvVLvvSZdli9CnC8hr1bXPfPcgp+ZC3UK68WE7E=;\n\th=From:Subject:Date:To:Cc:From;\n\tb=N6+HGFyhQd9DvW78jZtWY1QbnbgcQhKYbdv/Pr4g7qkRM9M1dt3zSDjvsq8+Cj6Pq\n\t /fYZRkpRRSxhtTiitiM6p0xyWllr8bgvYNLbg2S1HyHzztErbjiK8wJC9x+QtQWJzG\n\t jbGrbNjAcP3LB5fQiQVh5B9pu1AHdqSUOw6cmWYPtwbfHS9q0GIH7T812IUuRi0Fh8\n\t +Trv4GBlAhj7ISIQGWim7FoG76jC1fYOG+Eiv9DUQyKg4lsQ+KLXMaKOI6ovh2t4gS\n\t vJODnaQhSbNkc3kC5p1owoayosmQoqWLeTZOFy3SKWxoOY5peKpHkibCTXvOefNHFs\n\t 1hO1Xuq4ZpY4g==",
        "From": "Chuck Lever <cel@kernel.org>",
        "Subject": "[PATCH v9 00/17] Exposing case folding behavior",
        "Date": "Wed, 22 Apr 2026 19:29:54 -0400",
        "Message-Id": "<20260422-case-sensitivity-v9-0-be023cc070e2@oracle.com>",
        "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-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "X-B4-Tracking": "v=1; b=H4sIAPJZ6WkC/yWMQQ7CMAwEv1L5TEqJKBS+gjgkrk2NUIriEIGq/\n p0EDnuY1e4soBSFFM7NApGyqMyhwGnTAE4u3MjIWBhsZw/d3lqDTskoBZUkWdLH9OiZceBd3w9\n Qbs9ILO+f8nL9s778nTBVT134qvDRBZxqlVm3JebY2rbaeX6MsK5f7o3QmpsAAAA=",
        "X-Change-ID": "20260422-case-sensitivity-5cbffc8f1558",
        "To": "Al Viro <viro@zeniv.linux.org.uk>,\n Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>",
        "Cc": "linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,\n linux-xfs@vger.kernel.org, linux-cifs@vger.kernel.org,\n linux-nfs@vger.kernel.org, linux-api@vger.kernel.org,\n linux-f2fs-devel@lists.sourceforge.net, hirofumi@mail.parknet.co.jp,\n linkinjeon@kernel.org, sj1557.seo@samsung.com, yuezhang.mo@sony.com,\n almaz.alexandrovich@paragon-software.com, slava@dubeyko.com,\n glaubitz@physik.fu-berlin.de, frank.li@vivo.com, tytso@mit.edu,\n adilger.kernel@dilger.ca, cem@kernel.org, sfrench@samba.org,\n pc@manguebit.org, ronniesahlberg@gmail.com, sprasad@microsoft.com,\n trondmy@kernel.org, anna@kernel.org, jaegeuk@kernel.org, chao@kernel.org,\n hansg@kernel.org, senozhatsky@chromium.org,\n Chuck Lever <chuck.lever@oracle.com>, \"Darrick J. Wong\" <djwong@kernel.org>",
        "X-Mailer": "b4 0.16-dev",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=6855;\n i=chuck.lever@oracle.com; h=from:subject:message-id;\n bh=nSWvRvVLvvSZdli9CnC8hr1bXPfPcgp+ZC3UK68WE7E=;\n b=owEBbQKS/ZANAwAKATNqszNvZn+XAcsmYgBp6Vn9Kt1tzr2kFvP0Kdpok68GcrcKfLlwgFtsM\n oazIO8Ul9SJAjMEAAEKAB0WIQQosuWwEobfJDzyPv4zarMzb2Z/lwUCaelZ/QAKCRAzarMzb2Z/\n l9QQD/0cnxc2xWUgbGlmzr0CatU2yPuq86+5240DgMd1JmcaJt9CAna3J70eXcj3QgfuPQKTKRV\n 6Wj4NTvZq48eV9gFyX4EIbWUzlkuQdgMaxxQZeq/avJeilSwdxJqsg/CQx6VEevXvlW2bCEiWpy\n GK4Scn4yMuj5Wu04CyGzjvh8ySvjSmjJjCwzeSiT4rI5hUIFNmVXu7ywVgMmVemz7TVVXZjErFP\n +xFdr4I9IcMOJVA6scAtzMnFO7vFs40YtiVPkSfCQYle/w3k0FKqpGEMVueH75kl/Jaaxn8wkzv\n W1lY/B9IqCTW4NdG6Qd4ZaaCr+wnHwNxgzuYXfBqRWt/uYrCs1SH554zHYsStczLnFEAEg0y2P7\n Ck6/isIXfTB5tYlVfBL44MRKfNDDhtyZoqfzhgqnqzBtNNIk+GZouAD4qqjWYlWCoTNC242b9IN\n 713gzqezLN8ax2i1d1cUKZCcXz2e6V4a6Th1VxD1u15I918Ba0wQXowjwKf/CmCj0e5A2VmqP+N\n k75pCnONxAWYNGk545R71I+qwLpexoxkyKhnn+u3VQlVk1djoK6aQ8xA+K9njqvvUb4drZVPULh\n w9BWIIwK9SgO06IGf9WwP4tf/SXkjGH1YnzYzcmMfWlONfvUoalk1OQnGZd1hBhwVs79ZFG+6YD\n WNaMOCAe6Hb566Q==",
        "X-Developer-Key": "i=chuck.lever@oracle.com; a=openpgp;\n fpr=28B2E5B01286DF243CF23EFE336AB3336F667F97"
    },
    "content": "Following 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 = false\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\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\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---\nChanges since v8:\n- Rebase on v7.0-rc1\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 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          | 17 +++++++++++++++--\n fs/exfat/namei.c         |  1 +\n fs/ext4/ioctl.c          |  7 +++++++\n fs/f2fs/file.c           |  8 ++++++++\n fs/fat/fat.h             |  3 +++\n fs/fat/file.c            | 23 +++++++++++++++++++++++\n fs/fat/namei_msdos.c     |  1 +\n fs/fat/namei_vfat.c      |  1 +\n fs/file_attr.c           | 16 ++++++++--------\n fs/hfs/dir.c             |  1 +\n fs/hfs/hfs_fs.h          |  2 ++\n fs/hfs/inode.c           | 13 +++++++++++++\n fs/hfsplus/inode.c       | 10 ++++++++++\n fs/isofs/dir.c           | 11 +++++++++++\n fs/nfs/client.c          |  9 +++++++--\n fs/nfs/inode.c           | 21 +++++++++++++++++++++\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        | 25 +++++++++++++++++++++++--\n fs/nfsd/vfs.c            | 29 +++++++++++++++++++++++++++++\n fs/nfsd/vfs.h            |  3 +++\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        |  7 +++++++\n fs/vboxsf/utils.c        | 26 ++++++++++++++++++++++++++\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(+), 34 deletions(-)\n---\nbase-commit: 6596a02b207886e9e00bb0161c7fd59fea53c081\nchange-id: 20260422-case-sensitivity-5cbffc8f1558\n\nBest regards,\n--  \nChuck Lever"
}