Linux CIFS filesystem development
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: Amir Goldstein <amir73il@gmail.com>
Cc: "Darrick J. Wong" <djwong@kernel.org>,
	ronnie sahlberg <ronniesahlberg@gmail.com>,
	Chuck Lever <chuck.lever@oracle.com>,
	Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
	linux-fsdevel@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-kernel@vger.kernel.org, Steve French <sfrench@samba.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>
Subject: Re: Immutable vs read-only for Windows compatibility
Date: Fri, 17 Jan 2025 19:59:47 +0100	[thread overview]
Message-ID: <20250117185947.ylums2dhmo3j6hol@pali> (raw)
In-Reply-To: <CAOQ4uxhh1LDz5zXzqFENPhJ9k851AL3E7Xc2d7pSVVYX4Fu9Jw@mail.gmail.com>

On Friday 17 January 2025 19:46:30 Amir Goldstein wrote:
> > > Looking at the FILE_ATTRIBUTE_* flags defined in SMB protocol
> > >  (fs/smb/common/smb2pdu.h) I wonder how many of them will be
> > > needed for applications beyond the obvious ones that were listed.
> >
> > Well they only asked for seven of them. ;)
> >
> > I chatted with Ted about this yesterday, and ... some of the attributes
> > (like read only) imply that you'd want the linux server to enforce no
> > writing to the file; some like archive seem a little superfluous since
> > on linux you can compare cmtime from the backup against what's in the
> > file now; and still others (like hidden/system) might just be some dorky
> > thing that could be hidden in some xattr because a unix filesystem won't
> > care.
> >
> > And then there are other attrs like "integrity stream" where someone
> > with more experience with windows would have to tell me if fsverity
> > provides sufficient behaviors or not.
> >
> > But maybe we should start by plumbing one of those bits in?  I guess the
> > gross part is that implies an ondisk inode format change or (gross)
> > xattr lookups in the open path.
> >
> 
> I may be wrong, but I think there is a confusion in this thread.
> I don't think that Pali was looking for filesystems to implement
> storing those attributes. I read his email as a request to standardize
> a user API to get/set those attributes for the filesystems that
> already support them and possibly for vfs to enforce some of them
> (e.g. READONLY) in generic code.

Yes, you understood it correctly. I was asking for standardizing API how
to get/set these attributes from userspace. And Chuck wrote that would
like to have also standardized it for kernel consumers like nfsd or
ksmbd. Which makes sense.

> Nevertheless, I understand the confusion because I know there
> is also demand for storing those attributes by file servers in a
> standard way and for vfs to respect those attributes on the host.

Userspace fileserver, like Samba, would just use that standardized
userspace API for get/set attributes. And in-kernel fileservers like
nfsd or ksmbd would like to use that API too.

And there were some proposals how filesystems without native
support for these attributes could store and preserve these attributes.
So this can be a confusion in this email thread discussion.

> Full disclosure - I have an out of tree xfs patch that implements
> ioctls XFS_IOC_[GS]ETDOSATTRAT and stashes these
> attributes in the unused di_dmevmask space.
> 
> Compared to the smb server alternative of storing those attributes
> as xattrs on the server, this saves a *lot* of IO in an SMB file browsing
> workload, where most of the inodes have large (ACL) xattrs that do
> not fit into the inode, because SMB protocol needs to return
> those attributes in a response to READDIR(PLUSPLUS), so
> it needs to read all the external xattr blocks.
> 
> So yeh, I would love to have proper support in xfs...
> 
> Thanks,
> Amir.

So you would also benefit from standardizing of API for these attributes
as then you could implement that API for xfs.

  reply	other threads:[~2025-01-17 18:59 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-27 12:15 Immutable vs read-only for Windows compatibility Pali Rohár
2025-01-02 14:37 ` Jan Kara
2025-01-02 15:52   ` Chuck Lever
2025-01-02 18:12     ` Pali Rohár
2025-01-04  8:52     ` Christian Brauner
2025-01-04 11:12       ` Pali Rohár
2025-01-04 15:30       ` Chuck Lever
2025-01-14 21:10         ` Pali Rohár
2025-01-14 21:44           ` Chuck Lever
2025-01-14 21:53             ` Pali Rohár
2025-01-14 23:21               ` Darrick J. Wong
2025-01-14 23:29               ` ronnie sahlberg
2025-01-14 23:55                 ` Pali Rohár
2025-01-14 23:59                   ` Darrick J. Wong
2025-01-15  6:26                     ` Maciej W. Rozycki
2025-01-17 16:53                     ` Amir Goldstein
2025-01-17 17:39                       ` Darrick J. Wong
2025-01-17 17:51                         ` Steve French
2025-01-17 17:57                           ` Pali Rohár
2025-01-17 18:46                         ` Amir Goldstein
2025-01-17 18:59                           ` Pali Rohár [this message]
2025-02-02 15:23                             ` Pali Rohár
2025-02-03 21:59                               ` Amir Goldstein
2025-02-03 22:19                                 ` Pali Rohár
2025-02-03 23:02                                   ` Amir Goldstein
2025-02-03 23:34                                     ` Pali Rohár
2025-02-04 11:54                                       ` Amir Goldstein
2025-02-04 21:26                                         ` Pali Rohár
2025-02-05 16:33                                           ` Amir Goldstein
2025-02-05 18:16                                             ` Pali Rohár
2025-02-05 19:04                                               ` Pali Rohár
2025-02-05 21:47                                                 ` Amir Goldstein
2025-02-05 22:01                                               ` Amir Goldstein
2025-02-04 21:32                                 ` Pali Rohár
2025-02-15 23:39                               ` Pali Rohár
2025-01-17 20:21                           ` Darrick J. Wong
2025-01-22  6:05                             ` Christoph Hellwig
2025-01-17 17:52                       ` Pali Rohár
2025-01-14 23:32             ` Dave Chinner
2025-01-14 23:42               ` ronnie sahlberg
2025-01-15  0:16                 ` Pali Rohár
2025-01-02 17:59   ` Pali Rohár

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250117185947.ylums2dhmo3j6hol@pali \
    --to=pali@kernel.org \
    --cc=amir73il@gmail.com \
    --cc=brauner@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=djwong@kernel.org \
    --cc=jack@suse.cz \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ronniesahlberg@gmail.com \
    --cc=sfrench@samba.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox