get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2226984/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2226984,
    "url": "http://patchwork.ozlabs.org/api/patches/2226984/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260422-case-sensitivity-v9-11-be023cc070e2@oracle.com/",
    "project": {
        "id": 8,
        "url": "http://patchwork.ozlabs.org/api/projects/8/?format=api",
        "name": "Linux ext4 filesystem development",
        "link_name": "linux-ext4",
        "list_id": "linux-ext4.vger.kernel.org",
        "list_email": "linux-ext4@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260422-case-sensitivity-v9-11-be023cc070e2@oracle.com>",
    "list_archive_url": null,
    "date": "2026-04-22T23:30:05",
    "name": "[v9,11/17] nfs: Implement fileattr_get for case sensitivity",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": false,
    "hash": "2ead3c9f1ddf9c1134cfb18475f2cf6a40641953",
    "submitter": {
        "id": 86689,
        "url": "http://patchwork.ozlabs.org/api/people/86689/?format=api",
        "name": "Chuck Lever",
        "email": "cel@kernel.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260422-case-sensitivity-v9-11-be023cc070e2@oracle.com/mbox/",
    "series": [
        {
            "id": 501129,
            "url": "http://patchwork.ozlabs.org/api/series/501129/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=501129",
            "date": "2026-04-22T23:29:54",
            "name": "Exposing case folding behavior",
            "version": 9,
            "mbox": "http://patchwork.ozlabs.org/series/501129/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2226984/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2226984/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <SRS0=0aoQ=CV=vger.kernel.org=linux-ext4+bounces-16028-patchwork-incoming=ozlabs.org@ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-ext4@vger.kernel.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "patchwork-incoming@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=anGo91ms;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=150.107.74.76; helo=mail.ozlabs.org;\n envelope-from=srs0=0aoq=cv=vger.kernel.org=linux-ext4+bounces-16028-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=104.64.211.4 arc.chain=subspace.kernel.org",
            "gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org",
            "gandalf.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=anGo91ms;\n\tdkim-atps=neutral",
            "gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16028-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"anGo91ms\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"
        ],
        "Received": [
            "from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])\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 4g1Fqr607pz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 09:32:08 +1000 (AEST)",
            "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g1Fqr5YLhz4wCM\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 09:32:08 +1000 (AEST)",
            "by gandalf.ozlabs.org (Postfix)\n\tid 4g1Fqr5RF5z4wHx; Thu, 23 Apr 2026 09:32:08 +1000 (AEST)",
            "from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\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 gandalf.ozlabs.org (Postfix) with ESMTPS id 4g1Fqn305Qz4wCM\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 23 Apr 2026 09:32:05 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 23CDF301B147\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 22 Apr 2026 23:30:45 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 27E443A450F;\n\tWed, 22 Apr 2026 23:30:44 +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 DAA8B32C924;\n\tWed, 22 Apr 2026 23:30:43 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id 554FBC19425;\n\tWed, 22 Apr 2026 23:30:41 +0000 (UTC)"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776900728; cv=pass;\n\tb=bSQzj9m5Gn8As9+ZVnCDY3TpTTXWXoKKDpH7U5cv3hShtg53Aemmuixu8kl44zh0y1aVqAKUyDpHliov1uOT68z+3RskztE/6KN0eGrScphzqA2CCtIMlavguXm54BeK6h0vVwprQKzpCY9BxHfx02z4NWu6sYH+d5XYTbB+0tgywtzmfh1be1pxtwnunwjTpGa1peOAkoge+JLiWbWB+7KLLrR1MGlt6ePG3Hw0HeSN4QVY0pSYXB/RWi3bzKgreeQRzqJk7GW055zQ0et+dNsykRiruPXvQ8Bso1V0M0T3elZsXRBtHQ/ej1e0+ahnqbSzfCfxPKSGCH800/fygg==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776900643; cv=none;\n b=FggZuE3JIZMmBM7Avj+SWKu5kQqMND2Fr3EgQ13QGwDY+TQGxGYvTRKzygIVHGIaN3LDgO/jd8+ORz/FHT5Ic4eLEIR1cfNnjYGSHUFbMfPFYg+oOtFVIf1XSDnkVSiIZ83KfpfYyoZ0NuEU08TiX7BIQfeVTlwns5qg9SW7MlQ="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776900728; c=relaxed/relaxed;\n\tbh=XeJ6X/iaKYcRH1uJzFfpz/vnM5OHubPZLQ2NHUHJ4z4=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=mnGb6qgX/LH598kM15j+Y81WLXTbRYrQziJRP/iMXnjMWPa0PppYQmtz/87ybkvD/LkgyPGeyo62QB2dslDOmFGKeP4nTwfp6OJcEeV+QbfDIpLOWuz6fU6qzQfT46QjYPQTmBDuEy5s3zDYDFFo8MadWrq2+ifwJsdvIqUg6UhuP8PUrqls9mBAaw62WFSvC3di7WxP3oTuoAqaMEbpZkSsZ5iuDjb+ZRwhSFGSqq976Vo+NMa0JTzsS+ELr1ycKckTxjtvu2mV54r2UB+aNNEY3S+LaRnVWOhW6fQe/ljX6bcFykmS8ipB2bOE7cjX1HMN/mfm1iJwarhW7n8J8w==",
            "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776900643; c=relaxed/simple;\n\tbh=GR9z0DkqTplRpepB/Qln3uG86o4mVdQ9KP8Tv3A17ss=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=bEx0cByR5s05nNJ6lBaMXP+Gc6u01RZ4tnUPhYBPjCZe/0K2A2bDL/f1+Wh5nGodYDTakLSDSvzaNLpPW8qR51rH1iigtGSxVOAQmwTyJv3FRbg7h+R4JN453y8mzAhw4keM2SXkW5DKB7NxYGZ109hF9+PHHqA2QkKPjuzQ7vY="
        ],
        "ARC-Authentication-Results": [
            "i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=anGo91ms; dkim-atps=neutral;\n spf=pass (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16028-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org",
            "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=anGo91ms; 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=1776900643;\n\tbh=GR9z0DkqTplRpepB/Qln3uG86o4mVdQ9KP8Tv3A17ss=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=anGo91mst4wzlfqq26E5sln7GLGnW8o5qG/gwOZxP2J7zshyoudLxL++2AQiCuNiM\n\t j7IUdWAudmDR77erwBlZVYeVDcUkm0kxx3wo10DD9PPk+wf7axffRykmQFg0eCbafY\n\t KH7xVwP+hk7TBc9vqe5oPOVsIcoE9UjTpvDm1s7YIEQxy/7EyDUhj7HUReuRCX0XSM\n\t 70V9XBgznnLpcZRVYlHcReEREWlW4HVka8w7sq39l0rlueBcIaL8+CKccuIIbKfw5S\n\t FCr7kHe6EKkIMCRnyFyo27fTHQ5WzxZffCA4Xel44xYLgsWd1xcVvMCl7rV4999kPl\n\t 1RLcuU1VmAw9g==",
        "From": "Chuck Lever <cel@kernel.org>",
        "Date": "Wed, 22 Apr 2026 19:30:05 -0400",
        "Subject": "[PATCH v9 11/17] nfs: Implement fileattr_get for case sensitivity",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-ext4@vger.kernel.org",
        "List-Id": "<linux-ext4.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-ext4+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-ext4+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "Message-Id": "<20260422-case-sensitivity-v9-11-be023cc070e2@oracle.com>",
        "References": "<20260422-case-sensitivity-v9-0-be023cc070e2@oracle.com>",
        "In-Reply-To": "<20260422-case-sensitivity-v9-0-be023cc070e2@oracle.com>",
        "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>",
        "X-Mailer": "b4 0.16-dev",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=7886;\n i=chuck.lever@oracle.com; h=from:subject:message-id;\n bh=M73da8cGzQrZTcM0rxcg8uMx/wOdiZ+atXvp65Lr5YA=;\n b=owEBbQKS/ZANAwAKATNqszNvZn+XAcsmYgBp6VoGlFy7S8BEEemUX4nRLOCN16C35+KOE1vIl\n Bdr3+9snSCJAjMEAAEKAB0WIQQosuWwEobfJDzyPv4zarMzb2Z/lwUCaelaBgAKCRAzarMzb2Z/\n l14BEACMAEXpq+VoHoopeiTvvyH4TDrocynd7u+rW+p8mn7VsCojLWcGrOXT1YIr92EmvQy51Q3\n ympKacZ5H6+wOzaij4v3+ySrfF/bQ0WmHiJXRZctf9s5BfmnV/Gq9f3KR62XDfa3x3THCsHZtHf\n kBxfq+sJsSvP5+dhOGwvkH1+n1xRNyM62yLSuWZxwpPNj8oSFswAWbi5UegPBYvFvSKlltTs4Pp\n zD3aiPZrFg8E/lHj5hzaOsTzY4K4DvSRRIDadZ4eFt3DsjKJ3gzfzUP9Vh0kerQe30DOcsP37kl\n GRfpuu3vcbyYxF9nGUe2W8/kGsKkIIN8m1hwbGeCgmtPMokv96M7aG2ydsotFsmffcramoKVDbH\n CNsqf57f9caukeGG1QTpMUQXPkaplD8tPGJMrREld1P14ZUAKPFdIM+aaDTMiafs6una4Npqhtj\n lIOhXYxxtblZWoSEjefp1TBiNCnEHhDdknTLQ6hxqUX/LamkkCmMtdw36ik8sIiHM5rosNrMSi3\n APpI1G6rlE6Lv8cBSAiadtNOiWhcHIQ8lty3Y4zJuxjEi9pzrIIbufoPkuk8WtDzW3tSsjtQ+FH\n dB7QA9GSGIQ49SZKdNSKj4jz1qGSMuNSa+x0WsgHl9ZRB6Js1lldji2PQYjOrl841Zn5+LCC/1Q\n ozPplU+x7f0LOEw==",
        "X-Developer-Key": "i=chuck.lever@oracle.com; a=openpgp;\n fpr=28B2E5B01286DF243CF23EFE336AB3336F667F97",
        "X-Spam-Status": "No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"
    },
    "content": "From: Chuck Lever <chuck.lever@oracle.com>\n\nAn NFS server re-exporting an NFS mount point needs to report the\ncase sensitivity behavior of the underlying filesystem to its\nclients. Without this, re-export servers cannot accurately convey\ncase handling semantics, potentially causing client applications to\nmake incorrect assumptions about filename collisions and lookups.\n\nThe NFS client already retrieves case sensitivity information from\nservers during mount via PATHCONF (NFSv3) or the\nFATTR4_CASE_INSENSITIVE/FATTR4_CASE_PRESERVING attributes (NFSv4).\nExpose this information through fileattr_get by reporting the\nFS_XFLAG_CASEFOLD and FS_XFLAG_CASENONPRESERVING flags. NFSv2 lacks\nPATHCONF support, so mounts using that protocol version default to\nstandard POSIX behavior: case-sensitive and case-preserving.\n\nSigned-off-by: Chuck Lever <chuck.lever@oracle.com>\n---\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 include/linux/nfs_xdr.h |  2 ++\n 9 files changed, 48 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/fs/nfs/client.c b/fs/nfs/client.c\nindex be02bb227741..1b588d944598 100644\n--- a/fs/nfs/client.c\n+++ b/fs/nfs/client.c\n@@ -935,13 +935,18 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str\n \n \t/* Get some general file system info */\n \tif (server->namelen == 0) {\n-\t\tstruct nfs_pathconf pathinfo;\n+\t\tstruct nfs_pathconf pathinfo = { };\n \n \t\tpathinfo.fattr = fattr;\n \t\tnfs_fattr_init(fattr);\n \n-\t\tif (clp->rpc_ops->pathconf(server, mntfh, &pathinfo) >= 0)\n+\t\tif (clp->rpc_ops->pathconf(server, mntfh, &pathinfo) >= 0) {\n \t\t\tserver->namelen = pathinfo.max_namelen;\n+\t\t\tif (pathinfo.case_insensitive)\n+\t\t\t\tserver->caps |= NFS_CAP_CASE_INSENSITIVE;\n+\t\t\tif (pathinfo.case_preserving)\n+\t\t\t\tserver->caps |= NFS_CAP_CASE_PRESERVING;\n+\t\t}\n \t}\n \n \tif (clp->rpc_ops->discover_trunking != NULL &&\ndiff --git a/fs/nfs/inode.c b/fs/nfs/inode.c\nindex 98a8f0de1199..e148e459f689 100644\n--- a/fs/nfs/inode.c\n+++ b/fs/nfs/inode.c\n@@ -41,6 +41,7 @@\n #include <linux/freezer.h>\n #include <linux/uaccess.h>\n #include <linux/iversion.h>\n+#include <linux/fileattr.h>\n \n #include \"nfs4_fs.h\"\n #include \"callback.h\"\n@@ -1101,6 +1102,26 @@ int nfs_getattr(struct mnt_idmap *idmap, const struct path *path,\n }\n EXPORT_SYMBOL_GPL(nfs_getattr);\n \n+int nfs_fileattr_get(struct dentry *dentry, struct file_kattr *fa)\n+{\n+\tstruct inode *inode = d_inode(dentry);\n+\n+\t/*\n+\t * Case handling is a property of the exported filesystem on the\n+\t * NFS server, reported to the client at mount via PATHCONF\n+\t * (NFSv3) or FATTR4_CASE_INSENSITIVE / FATTR4_CASE_PRESERVING\n+\t * (NFSv4). Unlike filesystems that always preserve case, an NFS\n+\t * mount may front a backend that does not, so both flags can\n+\t * appear.\n+\t */\n+\tif (nfs_server_capable(inode, NFS_CAP_CASE_INSENSITIVE))\n+\t\tfa->fsx_xflags |= FS_XFLAG_CASEFOLD;\n+\tif (!nfs_server_capable(inode, NFS_CAP_CASE_PRESERVING))\n+\t\tfa->fsx_xflags |= FS_XFLAG_CASENONPRESERVING;\n+\treturn 0;\n+}\n+EXPORT_SYMBOL_GPL(nfs_fileattr_get);\n+\n static void nfs_init_lock_context(struct nfs_lock_context *l_ctx)\n {\n \trefcount_set(&l_ctx->count, 1);\ndiff --git a/fs/nfs/internal.h b/fs/nfs/internal.h\nindex fc5456377160..309d3f679bb3 100644\n--- a/fs/nfs/internal.h\n+++ b/fs/nfs/internal.h\n@@ -449,6 +449,9 @@ extern void nfs_set_cache_invalid(struct inode *inode, unsigned long flags);\n extern bool nfs_check_cache_invalid(struct inode *, unsigned long);\n extern int nfs_wait_bit_killable(struct wait_bit_key *key, int mode);\n \n+struct file_kattr;\n+int nfs_fileattr_get(struct dentry *dentry, struct file_kattr *fa);\n+\n #if IS_ENABLED(CONFIG_NFS_LOCALIO)\n /* localio.c */\n struct nfs_local_dio {\ndiff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c\nindex 95d7cd564b74..b80d0c5efc27 100644\n--- a/fs/nfs/nfs3proc.c\n+++ b/fs/nfs/nfs3proc.c\n@@ -1053,6 +1053,7 @@ static const struct inode_operations nfs3_dir_inode_operations = {\n \t.permission\t= nfs_permission,\n \t.getattr\t= nfs_getattr,\n \t.setattr\t= nfs_setattr,\n+\t.fileattr_get\t= nfs_fileattr_get,\n #ifdef CONFIG_NFS_V3_ACL\n \t.listxattr\t= nfs3_listxattr,\n \t.get_inode_acl\t= nfs3_get_acl,\n@@ -1064,6 +1065,7 @@ static const struct inode_operations nfs3_file_inode_operations = {\n \t.permission\t= nfs_permission,\n \t.getattr\t= nfs_getattr,\n \t.setattr\t= nfs_setattr,\n+\t.fileattr_get\t= nfs_fileattr_get,\n #ifdef CONFIG_NFS_V3_ACL\n \t.listxattr\t= nfs3_listxattr,\n \t.get_inode_acl\t= nfs3_get_acl,\ndiff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c\nindex e17d72908412..e745e78faab0 100644\n--- a/fs/nfs/nfs3xdr.c\n+++ b/fs/nfs/nfs3xdr.c\n@@ -2276,8 +2276,11 @@ static int decode_pathconf3resok(struct xdr_stream *xdr,\n \tif (unlikely(!p))\n \t\treturn -EIO;\n \tresult->max_link = be32_to_cpup(p++);\n-\tresult->max_namelen = be32_to_cpup(p);\n-\t/* ignore remaining fields */\n+\tresult->max_namelen = be32_to_cpup(p++);\n+\tp++;\t/* ignore no_trunc */\n+\tp++;\t/* ignore chown_restricted */\n+\tresult->case_insensitive = be32_to_cpup(p++) != 0;\n+\tresult->case_preserving = be32_to_cpup(p) != 0;\n \treturn 0;\n }\n \ndiff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c\nindex d839a97df822..507b74c406f2 100644\n--- a/fs/nfs/nfs4proc.c\n+++ b/fs/nfs/nfs4proc.c\n@@ -10598,6 +10598,7 @@ static const struct inode_operations nfs4_dir_inode_operations = {\n \t.getattr\t= nfs_getattr,\n \t.setattr\t= nfs_setattr,\n \t.listxattr\t= nfs4_listxattr,\n+\t.fileattr_get\t= nfs_fileattr_get,\n };\n \n static const struct inode_operations nfs4_file_inode_operations = {\n@@ -10605,6 +10606,7 @@ static const struct inode_operations nfs4_file_inode_operations = {\n \t.getattr\t= nfs_getattr,\n \t.setattr\t= nfs_setattr,\n \t.listxattr\t= nfs4_listxattr,\n+\t.fileattr_get\t= nfs_fileattr_get,\n };\n \n static struct nfs_server *nfs4_clone_server(struct nfs_server *source,\ndiff --git a/fs/nfs/proc.c b/fs/nfs/proc.c\nindex 70795684b8e8..03c2c1f31be9 100644\n--- a/fs/nfs/proc.c\n+++ b/fs/nfs/proc.c\n@@ -598,6 +598,7 @@ nfs_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle,\n {\n \tinfo->max_link = 0;\n \tinfo->max_namelen = NFS2_MAXNAMLEN;\n+\tinfo->case_preserving = true;\n \treturn 0;\n }\n \n@@ -718,12 +719,14 @@ static const struct inode_operations nfs_dir_inode_operations = {\n \t.permission\t= nfs_permission,\n \t.getattr\t= nfs_getattr,\n \t.setattr\t= nfs_setattr,\n+\t.fileattr_get\t= nfs_fileattr_get,\n };\n \n static const struct inode_operations nfs_file_inode_operations = {\n \t.permission\t= nfs_permission,\n \t.getattr\t= nfs_getattr,\n \t.setattr\t= nfs_setattr,\n+\t.fileattr_get\t= nfs_fileattr_get,\n };\n \n const struct nfs_rpc_ops nfs_v2_clientops = {\ndiff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c\nindex 58146e935402..74a072896f8d 100644\n--- a/fs/nfs/symlink.c\n+++ b/fs/nfs/symlink.c\n@@ -22,6 +22,8 @@\n #include <linux/mm.h>\n #include <linux/string.h>\n \n+#include \"internal.h\"\n+\n /* Symlink caching in the page cache is even more simplistic\n  * and straight-forward than readdir caching.\n  */\n@@ -74,4 +76,5 @@ const struct inode_operations nfs_symlink_inode_operations = {\n \t.get_link\t= nfs_get_link,\n \t.getattr\t= nfs_getattr,\n \t.setattr\t= nfs_setattr,\n+\t.fileattr_get\t= nfs_fileattr_get,\n };\ndiff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h\nindex ff1f12aa73d2..7c2057e40f99 100644\n--- a/include/linux/nfs_xdr.h\n+++ b/include/linux/nfs_xdr.h\n@@ -182,6 +182,8 @@ struct nfs_pathconf {\n \tstruct nfs_fattr\t*fattr; /* Post-op attributes */\n \t__u32\t\t\tmax_link; /* max # of hard links */\n \t__u32\t\t\tmax_namelen; /* max name length */\n+\tbool\t\t\tcase_insensitive;\n+\tbool\t\t\tcase_preserving;\n };\n \n struct nfs4_change_info {\n",
    "prefixes": [
        "v9",
        "11/17"
    ]
}