{"id":2232059,"url":"http://patchwork.ozlabs.org/api/patches/2232059/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20260502-case-sensitivity-v13-4-aa853140311f@oracle.com/","project":{"id":8,"url":"http://patchwork.ozlabs.org/api/projects/8/?format=json","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":"<20260502-case-sensitivity-v13-4-aa853140311f@oracle.com>","list_archive_url":null,"date":"2026-05-02T14:20:49","name":"[v13,04/15] exfat: Implement fileattr_get for case sensitivity","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"0691397374acc26816da81c278ec61ae0ba05222","submitter":{"id":86689,"url":"http://patchwork.ozlabs.org/api/people/86689/?format=json","name":"Chuck Lever","email":"cel@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20260502-case-sensitivity-v13-4-aa853140311f@oracle.com/mbox/","series":[{"id":502531,"url":"http://patchwork.ozlabs.org/api/series/502531/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/list/?series=502531","date":"2026-05-02T14:20:45","name":"Exposing case folding behavior","version":13,"mbox":"http://patchwork.ozlabs.org/series/502531/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2232059/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2232059/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <SRS0=5ijW=C7=vger.kernel.org=linux-ext4+bounces-16279-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=WyjdR5lb;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=5ijw=c7=vger.kernel.org=linux-ext4+bounces-16279-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=WyjdR5lb;\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-16279-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=\"WyjdR5lb\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\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 4g798N0Y5pz1y04\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 03 May 2026 00:21:56 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g798N05m4z4wT7\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 03 May 2026 00:21:56 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4g798N018pz4wTH; Sun, 03 May 2026 00:21:56 +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 4g798J2hSYz4wT7\n\tfor <patchwork-incoming@ozlabs.org>; Sun, 03 May 2026 00:21:52 +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 8366F3006212\n\tfor <patchwork-incoming@ozlabs.org>; Sat,  2 May 2026 14:21:39 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 675932820AC;\n\tSat,  2 May 2026 14:21:36 +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 25907299929;\n\tSat,  2 May 2026 14:21:35 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 4603DC19425;\n\tSat,  2 May 2026 14:21:30 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1777731715; cv=pass;\n\tb=dDGpGTzjKsZNNSw4kOdvO20E1Jk+OPnTnU9Y9r+88HP+jWBfL8t2gblfeP/cJOORYzs3QCy1HxV9yG/nTchPP4026ho7RNs0CmHxA9carQvYkQRI7iJv/hkwfEJb22NDSrmUba46s0rc+tFylZYHNHxzobFfBA0160K9QL8pnbeUhtMg6n19VDeTN+ts303B2RXgqpg4uBc4vdXum8T2It9MNzCCITopH0HOSsp+t5gm5fHJ5Y6+aHd4gl3KlS1GAuz+Kn4dp0jWAjRo1EK4EGIUawlwO2ZUX11wR7SCfnc3PidKbYbTCAeGIX/w/+BexVbxSeaf5Ga7Qs5q3pQy0w==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777731696; cv=none;\n b=kHnl2JpIgZ6nCD/cXkffA9jYjgr1XUG7yS9wHFvZEQA7YkqIOMXlqQgIdI8M1FpUWxx0C9P6pVF5m73fABz2S7asn+dnUh08c7bHMUrr4EVygUSUEVw5I0itPckYKBVZkfmNolr71ZwmiXkYIm6IMpIeYBy4FCz9J21QXlJX/T8="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1777731715; c=relaxed/relaxed;\n\tbh=WCarbD7R9nuMMwHti3cmIiJ5MWU/G4Yv/bi+M0CG1VI=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=AiNuVMSHTCi8eAeFV7n4tmEAuMW+NZulPiVt5mJvNHVAKNiR7nPFt4gxHgU02OoTlRjAJhz0rn4jvTxdwJddMHXv/m71caO5dqecAUOixBKWf28aO+j/0UURb42LM0SVDDIQys2l1n0jD40wbrXzsq7F0H46h6MgGJZ6yKaAnEx2rD5YE08atFrCEXYWeQDRUJcxb9xhSs8o2CjmHQ8WRaB7Pg3WdV7Qmk1H96fFDy9L/Swe+Nu33WzYI3mJ38BzOlSS1dH//2qgE/8pCTE431KD4W/m3AuEHamcEMARdQNrsAZjJUKbNQzlfGbf4+9rU9Z6lXYc00Gob47xHielDA==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777731696; c=relaxed/simple;\n\tbh=dJoqE7xg5dnDwM8zJtU22ff7SFmezUgNm6OnXSD6EvA=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=H6HmasQSAQjrQMYUKfcgz4X79UB3LxalB+zmJH2STVyUzFphqT6X9fdbnA9PKeP8+lSYAFCKgPRhhzFGT90HAHfMQ4QfAIOSh5GJI5C6QvUquVj+n5CIJ9xFtTxtA6YH047FPFyO2D7nK/CVtuposIsEZSuqkpUrB4KFcKEHyk8="],"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=WyjdR5lb; dkim-atps=neutral;\n spf=pass (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16279-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=WyjdR5lb; 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=1777731695;\n\tbh=dJoqE7xg5dnDwM8zJtU22ff7SFmezUgNm6OnXSD6EvA=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=WyjdR5lb9D8b02akU1M7YOd6zUj1wjvRXJgEjmvNVDUmBHc5yY+CW0OkboOq3Nvci\n\t sY94N3aXFL6LyVhp2CwWVWw68XO1Vn4lD02PO0mTTlQL7mA8itScfQOV3BCPFh+jd9\n\t Qp/dGl6WJ2Rsu4zblVDXhwz3ykFBeUJLQrkJj3Y4qN3geD8I92L8pI1dZZAA/i4M+r\n\t pw52Z5gNoGzQpLUoLfGDUYSmNupcZznx2u1SdJIuf1pz+T/YSJT9t2wqfeNmJQN+Rm\n\t PtGtVzJeCtoiA/YauyAp26dKMBu/Rfw+ZgLS83t6i7nMFR/4XDGhE7FLaEvxjnB8dF\n\t uirmNFIWKfE5A==","From":"Chuck Lever <cel@kernel.org>","Date":"Sat, 02 May 2026 10:20:49 -0400","Subject":"[PATCH v13 04/15] exfat: Implement fileattr_get for case\n 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":"<20260502-case-sensitivity-v13-4-aa853140311f@oracle.com>","References":"<20260502-case-sensitivity-v13-0-aa853140311f@oracle.com>","In-Reply-To":"<20260502-case-sensitivity-v13-0-aa853140311f@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>,\n Roland Mainz <roland.mainz@nrubsig.org>","X-Mailer":"b4 0.16-dev","X-Developer-Signature":"v=1; a=openpgp-sha256; l=2811;\n i=chuck.lever@oracle.com; h=from:subject:message-id;\n bh=w3256AVp6CHVnoJXu0KmBiEb3facwwFeSKlsCd+l9ow=;\n b=owEBbQKS/ZANAwAKATNqszNvZn+XAcsmYgBp9ghQwVydV/I6FUYHtpFOKOuxrA5/yrQacOPAA\n XepyKUb+vyJAjMEAAEKAB0WIQQosuWwEobfJDzyPv4zarMzb2Z/lwUCafYIUAAKCRAzarMzb2Z/\n l2xrD/461UqAsREpMVKet2RbTKHxJsI0yc9d+c1UnTQLFF9/UHlxCoFemStk2bG27wgEU8YkPi5\n pp0TXqGq04h5xhIr/0QLrl65NW3rVVA1RSQO6HEO9jBiNpd1Ze4M81TANAnZwgoCXtyERVO8jNu\n uoPAkMsLP8TXZSgkqjWfOi1EOBKNaYPndA2/ll1sIQIrzfhw9tejp5+CAk5qy55NaWDVo7Bxhp7\n 5+6uTWeGLhIgTtZO+Qfog6FcQYq9SoqYed5zp+U/FTgKnLsDBJO8Q3Ra8CWwwp9+COslescvHjn\n fiF0YNAAOH/c3Ammw2bKNNdyQgLRyTERvoIyauudqAzZWTM4NQ0kVFlPPHhiMZ54qb0LULlmFhR\n CWPFn4vAR8kXe/65s7Wh6IAWHoJwQJpnyHmw5PQ1y3R+7p6bFPBRzIE0Z/Y944+GePV51PQWmbn\n oG95qaWEOrww393FMcSwV8Fot8uYlqsVZMIR6qqXSGCt1QGKuFK4GXeXGixAubZJpfdtFHvT/RS\n NGovTmsPtzmSEWhmIZI2PLYfcs+Az33gQdBVmoMwuBzqptsbELyBb7W7NszDFcIgEkyeeUyN/wK\n 5M+eivWKwhV7l876sdXHwErHowguQuiRaLSDrl1BOx8LhLVA/n0Fbm8IV7Fbk+FBhw8Vl0+LqD3\n IcrnyunSfNdjGrA==","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\nReport exFAT's case sensitivity behavior via the FS_XFLAG_CASEFOLD\nflag. exFAT compares names through the volume's upcase table; in\npractice that table folds case, and case is preserved at rest.\n\nAcked-by: Namjae Jeon <linkinjeon@kernel.org>\nReviewed-by: Roland Mainz <roland.mainz@nrubsig.org>\nSigned-off-by: Chuck Lever <chuck.lever@oracle.com>\n---\n fs/exfat/exfat_fs.h |  2 ++\n fs/exfat/file.c     | 18 ++++++++++++++++--\n fs/exfat/namei.c    |  1 +\n 3 files changed, 19 insertions(+), 2 deletions(-)","diff":"diff --git a/fs/exfat/exfat_fs.h b/fs/exfat/exfat_fs.h\nindex 89ef5368277f..aff4dcd4e75a 100644\n--- a/fs/exfat/exfat_fs.h\n+++ b/fs/exfat/exfat_fs.h\n@@ -496,6 +496,8 @@ int exfat_setattr(struct mnt_idmap *idmap, struct dentry *dentry,\n int exfat_getattr(struct mnt_idmap *idmap, const struct path *path,\n \t\t  struct kstat *stat, unsigned int request_mask,\n \t\t  unsigned int query_flags);\n+struct file_kattr;\n+int exfat_fileattr_get(struct dentry *dentry, struct file_kattr *fa);\n int exfat_file_fsync(struct file *file, loff_t start, loff_t end, int datasync);\n long exfat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);\n long exfat_compat_ioctl(struct file *filp, unsigned int cmd,\ndiff --git a/fs/exfat/file.c b/fs/exfat/file.c\nindex 354bdcfe4abc..91e5511945d1 100644\n--- a/fs/exfat/file.c\n+++ b/fs/exfat/file.c\n@@ -14,6 +14,7 @@\n #include <linux/writeback.h>\n #include <linux/filelock.h>\n #include <linux/falloc.h>\n+#include <linux/fileattr.h>\n \n #include \"exfat_raw.h\"\n #include \"exfat_fs.h\"\n@@ -323,6 +324,18 @@ int exfat_getattr(struct mnt_idmap *idmap, const struct path *path,\n \treturn 0;\n }\n \n+int exfat_fileattr_get(struct dentry *dentry, struct file_kattr *fa)\n+{\n+\t/*\n+\t * exFAT compares filenames through an upcase table, so lookup\n+\t * is always case-insensitive. Long names are stored in UTF-16\n+\t * with case intact; CASENONPRESERVING stays clear.\n+\t */\n+\tfa->fsx_xflags |= FS_XFLAG_CASEFOLD;\n+\tfa->flags |= FS_CASEFOLD_FL;\n+\treturn 0;\n+}\n+\n int exfat_setattr(struct mnt_idmap *idmap, struct dentry *dentry,\n \t\t  struct iattr *attr)\n {\n@@ -817,6 +830,7 @@ const struct file_operations exfat_file_operations = {\n };\n \n const struct inode_operations exfat_file_inode_operations = {\n-\t.setattr     = exfat_setattr,\n-\t.getattr     = exfat_getattr,\n+\t.setattr\t= exfat_setattr,\n+\t.getattr\t= exfat_getattr,\n+\t.fileattr_get\t= exfat_fileattr_get,\n };\ndiff --git a/fs/exfat/namei.c b/fs/exfat/namei.c\nindex 2c5636634b4a..94002e43db08 100644\n--- a/fs/exfat/namei.c\n+++ b/fs/exfat/namei.c\n@@ -1311,4 +1311,5 @@ const struct inode_operations exfat_dir_inode_operations = {\n \t.rename\t\t= exfat_rename,\n \t.setattr\t= exfat_setattr,\n \t.getattr\t= exfat_getattr,\n+\t.fileattr_get\t= exfat_fileattr_get,\n };\n","prefixes":["v13","04/15"]}