From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4E5137E2FE; Mon, 12 Jan 2026 17:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768240001; cv=none; b=WgebAsnzYlvJ1U+4HUTiFh2oG/f/X2XvWlvFgZSFi91NpXFRiV0PQ/Vu0MSJE/C+t3hP8DOFmiU/DShxaUMnCALJgUWODz2EYz43oQCKCeAA9ROJy23WVg7WNwJMFZjWeVRm1UrLEblF9Pg4MWU2RV9KH7y2iw+NZBN86uq12Zs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768240001; c=relaxed/simple; bh=ZdmolEf7aMS93qvpWlwlmeIbSixEvC9LnO2arPDBgRE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jDEynqBq8pbjXe1eRpSQh8BVrHS+OhAh0XjpNpRJ/3jI83Uv+NbNjMWzyToo0f4bVr5HaWXdHet6OOIHv5GYVv1IxCPS+RAQV7rjrlf2oDj4t3/XoHkTAG/BoAI+i7r8eTDsQWKJbkAfJwxS3WRdowg3gj4uYSHZEiWaCaxw/xo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YVpUgMZe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YVpUgMZe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB17BC2BCB7; Mon, 12 Jan 2026 17:46:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768239999; bh=ZdmolEf7aMS93qvpWlwlmeIbSixEvC9LnO2arPDBgRE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YVpUgMZe8pjgAKS6qXuLuKdREdB1T1R6X6kgK2sCjR/n2VWHQJp1zSAKc8xAQp21l VcGs6N8AemeD+dN85eQ4zb6ZPxzUDo7bJICPReQ8q/1M4vlTc6t8rqtPu9YDPBcJqV EMGWJisvUomZMNzeYWNij/rHJnMZOQTX6cbz3WU8LmJlRC9TF3MbDZgNYhRMQTr/F7 v76Zysu70moFD3IY60Fzb3DmQnO80tshioDVBPd5atr7VmfIidBsbtao8BBJncmhOe +bkEOJ6o0RRyX9rnuZd6B85m3NvCGxneufI5W/2cLCEJCe1lZL+48InwDnBg1N86wm /52V56C+h1V8A== From: Chuck Lever To: vira, Christian Brauner , Jan Kara Cc: , linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-cifs@vger.kernel.org, , linux-f2fs-devel@lists.sourceforge.net, hirofumi@mail.parknet.co.jp, linkinjeon@kernel.org, sj1557.seo@samsung.com, yuezhang.mo@sony.com, almaz.alexandrovich@paragon-software.com, slava@dubeyko.com, glaubitz@physik.fu-berlin.de, frank.li@vivo.com, tytso@mit.edu, adilger.kernel@dilger.ca, cem@kernel.org, sfrench@samba.org, pc@manguebit.org, ronniesahlberg@gmail.com, sprasad@microsoft.com, trondmy@kernel.org, anna@kernel.org, jaegeuk@kernel.org, chao@kernel.org, hansg@kernel.org, senozhatsky@chromium.org, Chuck Lever Subject: [PATCH v3 01/16] fs: Add case sensitivity info to file_kattr Date: Mon, 12 Jan 2026 12:46:14 -0500 Message-ID: <20260112174629.3729358-2-cel@kernel.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112174629.3729358-1-cel@kernel.org> References: <20260112174629.3729358-1-cel@kernel.org> Precedence: bulk X-Mailing-List: linux-cifs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Chuck Lever Enable upper layers such as NFSD to retrieve case sensitivity information from file systems by adding case_insensitive and case_preserving boolean fields to struct file_kattr. The default POSIX behavior (case-sensitive, case-preserving) is initialized in vfs_fileattr_get(), allowing filesystems to override these values only when they differ from the default. Signed-off-by: Chuck Lever --- fs/file_attr.c | 10 ++++++++++ include/linux/fileattr.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/fs/file_attr.c b/fs/file_attr.c index 13cdb31a3e94..a73de0e0ecac 100644 --- a/fs/file_attr.c +++ b/fs/file_attr.c @@ -21,6 +21,9 @@ void fileattr_fill_xflags(struct file_kattr *fa, u32 xflags) { memset(fa, 0, sizeof(*fa)); + /* Default: POSIX semantics (case-sensitive, case-preserving) */ + fa->case_insensitive = false; + fa->case_preserving = true; fa->fsx_valid = true; fa->fsx_xflags = xflags; if (fa->fsx_xflags & FS_XFLAG_IMMUTABLE) @@ -51,6 +54,9 @@ EXPORT_SYMBOL(fileattr_fill_xflags); void fileattr_fill_flags(struct file_kattr *fa, u32 flags) { memset(fa, 0, sizeof(*fa)); + /* Default: POSIX semantics (case-sensitive, case-preserving) */ + fa->case_insensitive = false; + fa->case_preserving = true; fa->flags_valid = true; fa->flags = flags; if (fa->flags & FS_SYNC_FL) @@ -84,6 +90,10 @@ int vfs_fileattr_get(struct dentry *dentry, struct file_kattr *fa) struct inode *inode = d_inode(dentry); int error; + /* Default: POSIX semantics (case-sensitive, case-preserving) */ + fa->case_insensitive = false; + fa->case_preserving = true; + if (!inode->i_op->fileattr_get) return -ENOIOCTLCMD; diff --git a/include/linux/fileattr.h b/include/linux/fileattr.h index f89dcfad3f8f..cfd4d3973716 100644 --- a/include/linux/fileattr.h +++ b/include/linux/fileattr.h @@ -51,6 +51,9 @@ struct file_kattr { /* selectors: */ bool flags_valid:1; bool fsx_valid:1; + /* case sensitivity behavior: */ + bool case_insensitive:1; + bool case_preserving:1; }; int copy_fsxattr_to_user(const struct file_kattr *fa, struct fsxattr __user *ufa); -- 2.52.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 410EBCF45BD for ; Mon, 12 Jan 2026 17:46:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:Cc: Reply-To:From:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:MIME-Version:References:In-Reply-To: Message-ID:Date:To:Sender:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ljXUYkvc7r88P8P+wrrtSrcrE3WZFPlrbr0Cebjjttg=; b=PYzfWKcMphG1MWPcdGff73Skh+ K7sV7nRRZAnAv1cQjcF9xNixiy7nGvibdrnxXymAaSHhvF77PMx4g97p2hlF1iK1BIfHWYVoXMlm3 ZDCM4UAGdtyxWHRVq/T4AcRAVS1L7x6/bMyL4dkDII1c+XFOgZNGztNf6BlOsU/afqfM=; Received: from [127.0.0.1] (helo=sfs-ml-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1vfM0B-00013M-Sv; Mon, 12 Jan 2026 17:46:51 +0000 Received: from [172.30.29.66] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vfM0A-00013F-9Z for linux-f2fs-devel@lists.sourceforge.net; Mon, 12 Jan 2026 17:46:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=0eSjElFIcQJvAh4Jf1XVAQ9IX7tKDKmPOBmN0IZu/h4=; b=ZCS8QJm1SAi/BJrKRKAt81xYoR AF/Px9+VeQodIDB5dy1XK9SqkE681jk2IDzXW/mH9go/Kn/+yosyHIJNuOhTAArVUr/ThgcvXQPha cTj/Yg30e1LJ1wctEYM7VRyOB4PTULl18ETD0YHGHT/nMu5INzdVBCl8Yj2CBYzJNRdQ=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID: Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=0eSjElFIcQJvAh4Jf1XVAQ9IX7tKDKmPOBmN0IZu/h4=; b=chGXwre2q8AEQWtQ6GczBRQYjk PaEN6MPMJM32Xjt+HsPp029CBEknOmx6soITMhD88hCKv8HWtixcoofk/ETEIz4NuxawBimtUuMy8 5DsF2Egn8uQKO6qRbJTFTLKiX3F5mAMRNOm1NMHsZajIpe4DnZ9i7Fou1mXEnc4PSAd4=; Received: from sea.source.kernel.org ([172.234.252.31]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1vfM09-0008Sb-Re for linux-f2fs-devel@lists.sourceforge.net; Mon, 12 Jan 2026 17:46:50 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 8C1B8442E0; Mon, 12 Jan 2026 17:46:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB17BC2BCB7; Mon, 12 Jan 2026 17:46:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768239999; bh=ZdmolEf7aMS93qvpWlwlmeIbSixEvC9LnO2arPDBgRE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YVpUgMZe8pjgAKS6qXuLuKdREdB1T1R6X6kgK2sCjR/n2VWHQJp1zSAKc8xAQp21l VcGs6N8AemeD+dN85eQ4zb6ZPxzUDo7bJICPReQ8q/1M4vlTc6t8rqtPu9YDPBcJqV EMGWJisvUomZMNzeYWNij/rHJnMZOQTX6cbz3WU8LmJlRC9TF3MbDZgNYhRMQTr/F7 v76Zysu70moFD3IY60Fzb3DmQnO80tshioDVBPd5atr7VmfIidBsbtao8BBJncmhOe +bkEOJ6o0RRyX9rnuZd6B85m3NvCGxneufI5W/2cLCEJCe1lZL+48InwDnBg1N86wm /52V56C+h1V8A== To: vira, Christian Brauner , Jan Kara Date: Mon, 12 Jan 2026 12:46:14 -0500 Message-ID: <20260112174629.3729358-2-cel@kernel.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112174629.3729358-1-cel@kernel.org> References: <20260112174629.3729358-1-cel@kernel.org> MIME-Version: 1.0 X-Headers-End: 1vfM09-0008Sb-Re Subject: [f2fs-dev] [PATCH v3 01/16] fs: Add case sensitivity info to file_kattr X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Chuck Lever via Linux-f2fs-devel Reply-To: Chuck Lever Cc: pc@manguebit.org, yuezhang.mo@sony.com, cem@kernel.org, almaz.alexandrovich@paragon-software.com, adilger.kernel@dilger.ca, linux-cifs@vger.kernel.org, sfrench@samba.org, slava@dubeyko.com, linux-ext4@vger.kernel.org, linkinjeon@kernel.org, sprasad@microsoft.com, frank.li@vivo.com, ronniesahlberg@gmail.com, glaubitz@physik.fu-berlin.de, jaegeuk@kernel.org, hirofumi@mail.parknet.co.jp, linux-nfs@vger.kernel.org, tytso@mit.edu, linux-f2fs-devel@lists.sourceforge.net, linux-xfs@vger.kernel.org, senozhatsky@chromium.org, Chuck Lever , hansg@kernel.org, anna@kernel.org, linux-fsdevel@vger.kernel.org, sj1557.seo@samsung.com, trondmy@kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net From: Chuck Lever Enable upper layers such as NFSD to retrieve case sensitivity information from file systems by adding case_insensitive and case_preserving boolean fields to struct file_kattr. The default POSIX behavior (case-sensitive, case-preserving) is initialized in vfs_fileattr_get(), allowing filesystems to override these values only when they differ from the default. Signed-off-by: Chuck Lever --- fs/file_attr.c | 10 ++++++++++ include/linux/fileattr.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/fs/file_attr.c b/fs/file_attr.c index 13cdb31a3e94..a73de0e0ecac 100644 --- a/fs/file_attr.c +++ b/fs/file_attr.c @@ -21,6 +21,9 @@ void fileattr_fill_xflags(struct file_kattr *fa, u32 xflags) { memset(fa, 0, sizeof(*fa)); + /* Default: POSIX semantics (case-sensitive, case-preserving) */ + fa->case_insensitive = false; + fa->case_preserving = true; fa->fsx_valid = true; fa->fsx_xflags = xflags; if (fa->fsx_xflags & FS_XFLAG_IMMUTABLE) @@ -51,6 +54,9 @@ EXPORT_SYMBOL(fileattr_fill_xflags); void fileattr_fill_flags(struct file_kattr *fa, u32 flags) { memset(fa, 0, sizeof(*fa)); + /* Default: POSIX semantics (case-sensitive, case-preserving) */ + fa->case_insensitive = false; + fa->case_preserving = true; fa->flags_valid = true; fa->flags = flags; if (fa->flags & FS_SYNC_FL) @@ -84,6 +90,10 @@ int vfs_fileattr_get(struct dentry *dentry, struct file_kattr *fa) struct inode *inode = d_inode(dentry); int error; + /* Default: POSIX semantics (case-sensitive, case-preserving) */ + fa->case_insensitive = false; + fa->case_preserving = true; + if (!inode->i_op->fileattr_get) return -ENOIOCTLCMD; diff --git a/include/linux/fileattr.h b/include/linux/fileattr.h index f89dcfad3f8f..cfd4d3973716 100644 --- a/include/linux/fileattr.h +++ b/include/linux/fileattr.h @@ -51,6 +51,9 @@ struct file_kattr { /* selectors: */ bool flags_valid:1; bool fsx_valid:1; + /* case sensitivity behavior: */ + bool case_insensitive:1; + bool case_preserving:1; }; int copy_fsxattr_to_user(const struct file_kattr *fa, struct fsxattr __user *ufa); -- 2.52.0 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel