Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2197429/?format=api
{ "id": 2197429, "url": "http://patchwork.ozlabs.org/api/patches/2197429/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/patch/20260217214741.1928576-4-cel@kernel.org/", "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": "<20260217214741.1928576-4-cel@kernel.org>", "list_archive_url": null, "date": "2026-02-17T21:47:27", "name": "[v8,03/17] fat: Implement fileattr_get for case sensitivity", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "654898d9736ff39c3f13ed80267b4b0cb3e83030", "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/20260217214741.1928576-4-cel@kernel.org/mbox/", "series": [ { "id": 492483, "url": "http://patchwork.ozlabs.org/api/series/492483/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ext4/list/?series=492483", "date": "2026-02-17T21:47:25", "name": "Subject: Exposing case folding behavior", "version": 8, "mbox": "http://patchwork.ozlabs.org/series/492483/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2197429/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2197429/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <SRS0=KHIh=AV=vger.kernel.org=linux-ext4+bounces-13714-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=keY6lgWl;\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=khih=av=vger.kernel.org=linux-ext4+bounces-13714-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)", "gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=172.234.253.10 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=keY6lgWl;\n\tdkim-atps=neutral", "gandalf.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-ext4+bounces-13714-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=\"keY6lgWl\"", "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 4fFtbQ3Nq5z1xvq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 18 Feb 2026 08:49:54 +1100 (AEDT)", "from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fFtbQ2x3Vz4wB9\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 18 Feb 2026 08:49:54 +1100 (AEDT)", "by gandalf.ozlabs.org (Postfix)\n\tid 4fFtbQ2rJ8z4wDG; Wed, 18 Feb 2026 08:49:54 +1100 (AEDT)", "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)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fFtbM05Jbz4wB9\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 18 Feb 2026 08:49:50 +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 87EBE3051CB4\n\tfor <patchwork-incoming@ozlabs.org>; Tue, 17 Feb 2026 21:47:57 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 86D9F2FB0B3;\n\tTue, 17 Feb 2026 21:47:54 +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 450A52F5308;\n\tTue, 17 Feb 2026 21:47:53 +0000 (UTC)", "by smtp.kernel.org (Postfix) with ESMTPSA id 97A48C19423;\n\tTue, 17 Feb 2026 21:47:51 +0000 (UTC)" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1771364994; cv=pass;\n\tb=Qv64MOq16J5nscbX1Viu3mL7U79m27WSeHbYDBJA9gQXVJRaHKEM6y0EJ59UPIzIpUFSpuc8fIgA2k3eqR1PQ26wEQpkeYiA0NxzLUdnLhsX0ogWiXry64zRrp1MM759DgNtYef5lWzLa5xX4uSwTGcHKcDVvCzQ8B9xsc7UEJr1165hzcAr1G4sl8XAuLtNUZyT37X7x1wZ3eRWqhBY8qwsoi1nFdUm0WL6QYR9/0zaC1I9NdzMwn0zn6dvCWRK0+7hRChzA0J0mUeY7OgIbmjb8FTAIsWaIS9LDX/oJdFOliunrDRvG9ouTWfpfybGS1mpkLUzIYr60nqaq9YpIg==", "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771364874; cv=none;\n b=rNkq6OSPL+m0M6fPdZsky9+sLjgxmEr7SKJB1F4dPpEXqyhCFZhf/4uY6R/OVqaINsNyN1UHwlgpYUP9SWm1/gTkITrqYhWUYOVX6fWWSQO0nH49et+qqj7ZSuGsqqzx+Sr+pn16bPTp+fJ5q8mBW3V5Tv1Njh41YFTQfQvlp+c=" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1771364994; c=relaxed/relaxed;\n\tbh=WaC5dQZs8w3SuEpFOikgRhjCezWR6h9tS8M5No7AU5U=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=QfflLtqjXRFz4ixEjvWELH/s6EMiewKKvCZh2q8vq2jFGFLUwToE9hGBs/XWHJ6xDmcd/6kV+2MyoRi9gQzreMrYrauvSblPgxq7fTu8lNvDtrMFIxLuwRtpSZd6OYwOm6O3RjTSKpYyfaa+ORQVgoqX/DpWkg4lnhQ6NhAGllSIJByLu+lRx3IuLGK/rOs1hpRXOS43noN23365bxTs35yQxPuJIUntINyFuyF46y3XPBvFieZ9CYV+m/Yvgfy9OJaJ/jREFrvxpMJrI4M4oUDBqCXWe7ujgFD2R6DWyJSFosnMyqVn4CNVqv3jcd1vMZhhClauA+WCSI2jsYYDgA==", "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771364874; c=relaxed/simple;\n\tbh=cHhksxlO96QEawlhjyYnaSbl5+77pzjoROA8wlLGqgU=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=LmzDLvtP7tFQxoHse4KFGiVjkA/Juhmd/MMQUC7e9hNZjnSQXs0ei49WT7JyPqT9U4Da5uLloCo3OpP8RfXFfCXwQp/12ZLL3GUekNixj1oMw6eVJ82HXBLdQ91mzgs3psAHGXaeYXN97iKeayrFgdQaDWGQeC4+XVlbzXAH8aE=" ], "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=keY6lgWl; dkim-atps=neutral;\n spf=pass (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-13714-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=keY6lgWl; 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=1771364873;\n\tbh=cHhksxlO96QEawlhjyYnaSbl5+77pzjoROA8wlLGqgU=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=keY6lgWl6avpxhgPWcmjHlUfLDc4ss4X+S8cI2hFMwDLb7ygULlg0mhII2bVcKU9g\n\t OyYchsw6BLGJuj2K5LS4p6TpRZw3TS0Mbtbjll4QOtZByOitsCjZGbSnUxMyvdf/us\n\t t0e+bwRVJM7BeqqNRn8Hj+rdXATZ788HpDbsg250knLGUJ3EA5vF5c/aB3gKCXvQKa\n\t MMrhC9L/cQxtYqMnQwr9mChCAS4PsQXRyXH8tzMEwZO09zJ4r0wWWo8sSsBmTVMJtG\n\t 0ndIMSBtOC/ZAihXGnIY4arUBF5MPFyr50pD10Lr0XgMVIf78PmYakqnv8yiFpM6UB\n\t k8f3FJHZQlQNg==", "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 03/17] fat: Implement fileattr_get for case sensitivity", "Date": "Tue, 17 Feb 2026 16:47:27 -0500", "Message-ID": "<20260217214741.1928576-4-cel@kernel.org>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260217214741.1928576-1-cel@kernel.org>", "References": "<20260217214741.1928576-1-cel@kernel.org>", "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-Transfer-Encoding": "8bit", "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 FAT's case sensitivity behavior via the FS_XFLAG_CASEFOLD\nand FS_XFLAG_CASENONPRESERVING flags. FAT filesystems are\ncase-insensitive by default.\n\nMSDOS supports a 'nocase' mount option that enables case-sensitive\nbehavior; check this option when reporting case sensitivity.\n\nVFAT long filename entries preserve case; without VFAT, only\nuppercased 8.3 short names are stored. MSDOS with 'nocase' also\npreserves case since the name-formatting code skips upcasing when\n'nocase' is set. Check both options when reporting case preservation.\n\nSigned-off-by: Chuck Lever <chuck.lever@oracle.com>\n---\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 4 files changed, 27 insertions(+)", "diff": "diff --git a/fs/fat/fat.h b/fs/fat/fat.h\nindex 0d269dba897b..c5bcd1063f9c 100644\n--- a/fs/fat/fat.h\n+++ b/fs/fat/fat.h\n@@ -10,6 +10,8 @@\n #include <linux/fs_context.h>\n #include <linux/fs_parser.h>\n \n+struct file_kattr;\n+\n /*\n * vfat shortname flags\n */\n@@ -407,6 +409,7 @@ extern void fat_truncate_blocks(struct inode *inode, loff_t offset);\n extern int fat_getattr(struct mnt_idmap *idmap,\n \t\t const struct path *path, struct kstat *stat,\n \t\t u32 request_mask, unsigned int flags);\n+int fat_fileattr_get(struct dentry *dentry, struct file_kattr *fa);\n extern int fat_file_fsync(struct file *file, loff_t start, loff_t end,\n \t\t\t int datasync);\n \ndiff --git a/fs/fat/file.c b/fs/fat/file.c\nindex 124d9c5431c8..6823269a8604 100644\n--- a/fs/fat/file.c\n+++ b/fs/fat/file.c\n@@ -17,6 +17,7 @@\n #include <linux/fsnotify.h>\n #include <linux/security.h>\n #include <linux/falloc.h>\n+#include <linux/fileattr.h>\n #include \"fat.h\"\n \n static long fat_fallocate(struct file *file, int mode,\n@@ -396,6 +397,26 @@ void fat_truncate_blocks(struct inode *inode, loff_t offset)\n \tfat_flush_inodes(inode->i_sb, inode, NULL);\n }\n \n+int fat_fileattr_get(struct dentry *dentry, struct file_kattr *fa)\n+{\n+\tstruct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb);\n+\n+\t/*\n+\t * FAT filesystems are case-insensitive by default. MSDOS\n+\t * supports a 'nocase' mount option for case-sensitive behavior.\n+\t *\n+\t * VFAT long filename entries preserve case. Without VFAT, only\n+\t * uppercased 8.3 short names are stored. MSDOS with 'nocase'\n+\t * also preserves case.\n+\t */\n+\tif (!sbi->options.nocase)\n+\t\tfa->fsx_xflags |= FS_XFLAG_CASEFOLD;\n+\tif (!sbi->options.isvfat && !sbi->options.nocase)\n+\t\tfa->fsx_xflags |= FS_XFLAG_CASENONPRESERVING;\n+\treturn 0;\n+}\n+EXPORT_SYMBOL_GPL(fat_fileattr_get);\n+\n int fat_getattr(struct mnt_idmap *idmap, const struct path *path,\n \t\tstruct kstat *stat, u32 request_mask, unsigned int flags)\n {\n@@ -573,5 +594,6 @@ EXPORT_SYMBOL_GPL(fat_setattr);\n const struct inode_operations fat_file_inode_operations = {\n \t.setattr\t= fat_setattr,\n \t.getattr\t= fat_getattr,\n+\t.fileattr_get\t= fat_fileattr_get,\n \t.update_time\t= fat_update_time,\n };\ndiff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c\nindex 048c103b506a..4a3db08e51c0 100644\n--- a/fs/fat/namei_msdos.c\n+++ b/fs/fat/namei_msdos.c\n@@ -642,6 +642,7 @@ static const struct inode_operations msdos_dir_inode_operations = {\n \t.rename\t\t= msdos_rename,\n \t.setattr\t= fat_setattr,\n \t.getattr\t= fat_getattr,\n+\t.fileattr_get\t= fat_fileattr_get,\n \t.update_time\t= fat_update_time,\n };\n \ndiff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c\nindex 2acfe3123a72..18f4c316aa05 100644\n--- a/fs/fat/namei_vfat.c\n+++ b/fs/fat/namei_vfat.c\n@@ -1185,6 +1185,7 @@ static const struct inode_operations vfat_dir_inode_operations = {\n \t.rename\t\t= vfat_rename2,\n \t.setattr\t= fat_setattr,\n \t.getattr\t= fat_getattr,\n+\t.fileattr_get\t= fat_fileattr_get,\n \t.update_time\t= fat_update_time,\n };\n \n", "prefixes": [ "v8", "03/17" ] }