[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45b21443e42ac3fd009c8e6ab2caf5b02d815c72.camel@ibm.com>
Date: Tue, 13 Jan 2026 17:35:25 +0000
From: Viacheslav Dubeyko <Slava.Dubeyko@....com>
To: "cel@...nel.org" <cel@...nel.org>, "jack@...e.cz" <jack@...e.cz>,
"brauner@...nel.org" <brauner@...nel.org>,
"vira@....codeaurora.org"
<vira@....codeaurora.org>
CC: "glaubitz@...sik.fu-berlin.de" <glaubitz@...sik.fu-berlin.de>,
"chuck.lever@...cle.com" <chuck.lever@...cle.com>,
"chao@...nel.org"
<chao@...nel.org>,
"linux-xfs@...r.kernel.org" <linux-xfs@...r.kernel.org>,
"linkinjeon@...nel.org" <linkinjeon@...nel.org>,
"linux-cifs@...r.kernel.org"
<linux-cifs@...r.kernel.org>,
"pc@...guebit.org" <pc@...guebit.org>,
"yuezhang.mo@...y.com" <yuezhang.mo@...y.com>,
"almaz.alexandrovich@...agon-software.com"
<almaz.alexandrovich@...agon-software.com>,
"hirofumi@...l.parknet.co.jp"
<hirofumi@...l.parknet.co.jp>,
"slava@...eyko.com" <slava@...eyko.com>,
"anna@...nel.org" <anna@...nel.org>,
"linux-f2fs-devel@...ts.sourceforge.net"
<linux-f2fs-devel@...ts.sourceforge.net>,
"linux-nfs@...r.kernel.org"
<linux-nfs@...r.kernel.org>,
"tytso@....edu" <tytso@....edu>,
"linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>,
"sj1557.seo@...sung.com" <sj1557.seo@...sung.com>,
"trondmy@...nel.org"
<trondmy@...nel.org>,
"cem@...nel.org" <cem@...nel.org>,
"ronniesahlberg@...il.com" <ronniesahlberg@...il.com>,
"jaegeuk@...nel.org"
<jaegeuk@...nel.org>,
"linux-fsdevel@...r.kernel.org"
<linux-fsdevel@...r.kernel.org>,
"adilger.kernel@...ger.ca"
<adilger.kernel@...ger.ca>,
"sfrench@...ba.org" <sfrench@...ba.org>,
"frank.li@...o.com" <frank.li@...o.com>,
"sprasad@...rosoft.com"
<sprasad@...rosoft.com>,
"hansg@...nel.org" <hansg@...nel.org>,
"senozhatsky@...omium.org" <senozhatsky@...omium.org>
Subject: Re: [PATCH v3 05/16] hfs: Implement fileattr_get for case
sensitivity
On Mon, 2026-01-12 at 12:46 -0500, Chuck Lever wrote:
> From: Chuck Lever <chuck.lever@...cle.com>
>
> Report HFS case sensitivity behavior via the file_kattr boolean
> fields. HFS is always case-insensitive (using Mac OS Roman case
> folding) and always preserves case at rest.
>
> Signed-off-by: Chuck Lever <chuck.lever@...cle.com>
> ---
> fs/hfs/dir.c | 1 +
> fs/hfs/hfs_fs.h | 2 ++
> fs/hfs/inode.c | 13 +++++++++++++
> 3 files changed, 16 insertions(+)
>
> diff --git a/fs/hfs/dir.c b/fs/hfs/dir.c
> index 86a6b317b474..552156896105 100644
> --- a/fs/hfs/dir.c
> +++ b/fs/hfs/dir.c
> @@ -321,4 +321,5 @@ const struct inode_operations hfs_dir_inode_operations = {
> .rmdir = hfs_remove,
> .rename = hfs_rename,
> .setattr = hfs_inode_setattr,
> + .fileattr_get = hfs_fileattr_get,
> };
> diff --git a/fs/hfs/hfs_fs.h b/fs/hfs/hfs_fs.h
> index e94dbc04a1e4..a25cdda8ab34 100644
> --- a/fs/hfs/hfs_fs.h
> +++ b/fs/hfs/hfs_fs.h
> @@ -177,6 +177,8 @@ extern int hfs_get_block(struct inode *inode, sector_t block,
> extern const struct address_space_operations hfs_aops;
> extern const struct address_space_operations hfs_btree_aops;
>
> +struct file_kattr;
> +int hfs_fileattr_get(struct dentry *dentry, struct file_kattr *fa);
> int hfs_write_begin(const struct kiocb *iocb, struct address_space *mapping,
> loff_t pos, unsigned int len, struct folio **foliop,
> void **fsdata);
> diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c
> index 524db1389737..06429decc1d8 100644
> --- a/fs/hfs/inode.c
> +++ b/fs/hfs/inode.c
> @@ -18,6 +18,7 @@
> #include <linux/uio.h>
> #include <linux/xattr.h>
> #include <linux/blkdev.h>
> +#include <linux/fileattr.h>
>
> #include "hfs_fs.h"
> #include "btree.h"
> @@ -698,6 +699,17 @@ static int hfs_file_fsync(struct file *filp, loff_t start, loff_t end,
> return ret;
> }
>
> +int hfs_fileattr_get(struct dentry *dentry, struct file_kattr *fa)
> +{
> + /*
> + * HFS is always case-insensitive (using Mac OS Roman case
> + * folding) and always preserves case at rest.
> + */
> + fa->case_insensitive = true;
> + fa->case_preserving = true;
> + return 0;
> +}
> +
> static const struct file_operations hfs_file_operations = {
> .llseek = generic_file_llseek,
> .read_iter = generic_file_read_iter,
> @@ -714,4 +726,5 @@ static const struct inode_operations hfs_file_inode_operations = {
> .lookup = hfs_file_lookup,
> .setattr = hfs_inode_setattr,
> .listxattr = generic_listxattr,
> + .fileattr_get = hfs_fileattr_get,
> };
Looks good.
Reviewed-by: Viacheslav Dubeyko <slava@...eyko.com>
Thanks,
Slava.
Powered by blists - more mailing lists