From: Amir Goldstein <amir73il@gmail.com>
To: Matthew Wilcox <willy@infradead.org>
Cc: phil@philpotter.co.uk, Evgeniy Dushistov <dushistov@mail.ru>,
Al Viro <viro@zeniv.linux.org.uk>,
David.Laight@aculab.com,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH] fs: ufs: Remove switch statement from ufs_set_de_type function
Date: Sun, 21 Oct 2018 08:30:35 +0300 [thread overview]
Message-ID: <CAOQ4uxhO_-B12280jT5RHX3oMjoSTHG73=PyDDVfURs-ey-EkA@mail.gmail.com> (raw)
In-Reply-To: <20181020222637.GA3477@bombadil.infradead.org>
On Sun, Oct 21, 2018 at 1:27 AM Matthew Wilcox <willy@infradead.org> wrote:
>
> On Sat, Oct 20, 2018 at 11:09:57PM +0100, Phillip Potter wrote:
> > Remove switch statement from ufs_set_de_type function in fs/ufs/util.h
> > header and replace with simple assignment. For each case, S_IFx >> 12
> > is equal to DT_x, so in valid cases (mode & S_IFMT) >> 12 should give
> > us the correct file type. It is expected that for *nix compatibility
> > reasons, the relation between S_IFx and DT_x will not change. For
> > cases where the mode is invalid, upper layer validation catches this
> > anyway, so this improves readability and arguably performance by
> > assigning (mode & S_IFMT) >> 12 directly without any jump table
> > or conditional logic.
>
> Shouldn't we also do this for other filesystems? A quick scan suggests
> someone should at least look at xfs, ubifs, squashfs, romfs, ocfs2,
> nilfs2, hfsplus, f2fs, ext4, ext2, exofs, coda, cifs & btrfs.
>
I've tried to do that 2 years ago, not even for readability, but to
fix a lurking
bug in conversion table implementation that was copy&pasted from ext2 to
many other fs:
https://marc.info/?l=linux-fsdevel&m=148217829301701&w=2
https://marc.info/?l=linux-fsdevel&w=2&r=1&s=amir73il+file+type+conversion&q=b
The push back from ext4/xfs maintainers was that while all fs use common
values to encode d_type in on disk format, those on-disk format values
are private to the fs.
Eventually, the fix that got merged (only to xfs) did the opposite, it converted
the conversion table lookup to a switch statement:
https://marc.info/?l=linux-fsdevel&m=148243866204444&w=2
Some fs maintainers were happy about the initial version, but I did not
pursue pushing that cleanup:
https://marc.info/?l=linux-fsdevel&m=148243866204444&w=2
Phillip, you are welcome to re-spin those patches if you like.
Note that the generic conversion helpers do not rely on upper layer
to catch invalid mode values.
Cheers,
Amir.
next prev parent reply other threads:[~2018-10-21 5:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-20 22:09 [PATCH] fs: ufs: Remove switch statement from ufs_set_de_type function Phillip Potter
2018-10-20 22:26 ` Matthew Wilcox
2018-10-20 23:07 ` Al Viro
2018-10-21 5:30 ` Amir Goldstein [this message]
2018-10-21 9:57 ` Phillip Potter
2018-10-21 11:02 ` Amir Goldstein
2018-10-22 8:20 ` Phillip Potter
-- strict thread matches above, loose matches on Subject: below --
2018-10-17 12:34 Phillip Potter
2018-10-17 10:08 Phillip Potter
2018-10-17 10:11 ` David Laight
2018-10-17 23:33 ` Al Viro
2018-10-18 10:19 ` Phillip Potter
2018-10-09 13:16 Phillip Potter
2018-10-02 16:41 Phillip Potter
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='CAOQ4uxhO_-B12280jT5RHX3oMjoSTHG73=PyDDVfURs-ey-EkA@mail.gmail.com' \
--to=amir73il@gmail.com \
--cc=David.Laight@aculab.com \
--cc=dushistov@mail.ru \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=phil@philpotter.co.uk \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).