From: Theodore Ts'o <tytso@mit.edu>
To: Christoph Hellwig <hch@infradead.org>
Cc: Jan Kara <jack@suse.cz>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
Aurelien Jarno <aurelien@aurel32.net>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Rob Browning <rlb@defaultvalue.org>,
Dave Chinner <david@fromorbit.com>,
Miklos Szeredi <miklos@szeredi.hu>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-kernel@vger.kernel.org, linux-ext4@vger.kernel.org
Subject: Re: [RFC PATCH] fs: xattr-based FS_IOC_[GS]ETFLAGS interface
Date: Tue, 7 Jan 2014 12:04:30 -0500 [thread overview]
Message-ID: <20140107170430.GA2822@thunk.org> (raw)
In-Reply-To: <20140107154935.GA17609@infradead.org>
On Tue, Jan 07, 2014 at 07:49:35AM -0800, Christoph Hellwig wrote:
> On Tue, Jan 07, 2014 at 01:48:31PM +0100, Jan Kara wrote:
> > I have to say I'm not thrilled by the idea of juggling strings in
> > userspace and in kernel to set a flag for an inode...
>
> Nevermind the massive amounts of code that sit in the filesystem.
The reason for this patch was to address what Dave Chinner has called
"a shitty interface"[1]. Using bitfields that need to be coordinated
across file systems, when sometimes a bit assignment is validly a fs
specific thing, and then later becomes something that gets shared
across file systems.
[1] http://thread.gmane.org/gmane.linux.file-systems/80164/focus=80396
If we don't go about it this way, there are alternatives: we could
create new ioctls (or a new syscall) as we start running out of bits
used by FS_IOC_[GS]ETFLAGS. We can create new ioctls for bits which
are intended for fs-specific flags, which then later get promoted to
the new syscall when some functionality starts to get shared accross
other file systems (probably with a different bit assignment). This
is certainly less code, but it does mean more complexity outside of
the code when we try to coordinate new functionality across file
systems.
Personally, I don't mind dealing with codepoint assignments, but my
impression is that this is a minority viewpoint. Al and Linus have
historically hated bitfields, and Al in the past has spoken favorably
of Plan 9's approach of using strings for the system interface.
So while I have a preference towards using bitfields, as opposed to
using the xattr approach, what I'd really like is that we make a
decision, one way or another, about what's the best way to move
forward.
- Ted
next prev parent reply other threads:[~2014-01-07 17:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-07 2:58 [RFC PATCH] fs: xattr-based FS_IOC_[GS]ETFLAGS interface Darrick J. Wong
2014-01-07 12:48 ` Jan Kara
2014-01-07 15:49 ` Christoph Hellwig
2014-01-07 17:04 ` Theodore Ts'o [this message]
2014-01-07 19:43 ` Darrick J. Wong
2014-01-07 19:59 ` Chris Mason
2014-01-07 22:02 ` Darrick J. Wong
2014-01-07 22:08 ` Chris Mason
2014-01-07 22:27 ` Theodore Ts'o
2014-01-07 22:04 ` [RFC PATCH v2] fs: new FS_IOC_[GS]ETFLAGS2 interface Darrick J. Wong
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=20140107170430.GA2822@thunk.org \
--to=tytso@mit.edu \
--cc=aurelien@aurel32.net \
--cc=darrick.wong@oracle.com \
--cc=david@fromorbit.com \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=rlb@defaultvalue.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.