From: Dave Chinner <david@fromorbit.com>
To: Mark Tinguely <tinguely@sgi.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH v3 0/4] xfsprogs: v4 inode type in directory
Date: Fri, 18 Oct 2013 14:19:50 +1100 [thread overview]
Message-ID: <20131018031950.GT4446@dastard> (raw)
In-Reply-To: <52605FF8.2000301@sgi.com>
On Thu, Oct 17, 2013 at 05:08:56PM -0500, Mark Tinguely wrote:
> On 10/17/13 10:28, Mark Tinguely wrote:
> >Here are the patches that enable the inode in the directory
> >feature in v4 superblocks.
> >
> >Unchanged
> > patch 1: add the entries to xfs_sb.h (sync with kernel)
> > patch 2: add the XFS_FSOP_GEOM_FLAGS_FTYPE to xfs_fs.h (sync with kernel)
> > add the entry to repair so that xfs_info reports the feature
> >New
> > patch 3: add feature to the xfs_db version command.
> >
> >Fixed
> > patch 4: add the feature to mkfs.xfs and manual page.
> > note: this new feature is ignored for superblock v5
> > automatically turns on this feature.
>
> FYI.
>
> I saw the request for adding the filetype entry to block/leaf after posting.
>
> I have it displaying unconditionally, but am trying to figure out
> how to make it display only for filesytems that support the ftype
> feature. I am missing something in the field.count().
The count function only tells the code whether a structure is
present or not, but it does not tell you what the format of the
structure is.
if you look at db/dir2.c, you'll see that the difference between the
dir2_flds[] and the dir3_flds[] is mainly in the type, count and offset
fields. For example:
const field_t dir2_flds[] = {
{ "bhdr", FLDT_DIR2_DATA_HDR, OI(BOFF(magic)), dir2_block_hdr_count,
FLD_COUNT, TYP_NONE }
...
const field_t dir3_flds[] = {
{ "bhdr", FLDT_DIR3_DATA_HDR, OI(B3OFF(hdr)), dir3_block_hdr_count,
FLD_COUNT, TYP_NONE },
...
if you look at dir[23]_block_hdr_count(), you'll see that they
return a boolean value based on a magic number check. Hence when the
code is trying to determine the type of the block that has been read
(i.e. what the field definition is), if the magic number matches we
know exactly what type of contents they contain.
For decoding the dtype, you need too look at how to select the
correct structure for the FLDT_DIR2_DATA_UNION. If you don't have
the feature set, you need to select the FLDT_DIR2_DATA_UNION
structure type, and if it is set you need to select the
FLDT_DIR3_DATA_UNION type. Hence you need both these types defined
in the dir2_flds[] array, and some manner to ensure the correct
values are returned from the count functions.
And just to make it hard, both the dir2 and dir3 data union count
functions use the same function (dir2_data_u_count) so you're going
to have to be careful that you don't break the v5 superblock
directory decoding....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2013-10-18 3:20 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-17 15:28 [PATCH v3 0/4] xfsprogs: v4 inode type in directory Mark Tinguely
2013-10-17 15:28 ` [PATCH v3 1/4] xfsprog: add xfs sb v4 support for dirent filetype field Mark Tinguely
2013-10-22 23:23 ` Dave Chinner
2013-10-23 23:47 ` Rich Johnston
2013-10-17 15:28 ` [PATCH v3 2/4] xfsprog: add dirent filetype information for xfs_info Mark Tinguely
2013-10-22 23:23 ` Dave Chinner
2013-10-23 23:43 ` Rich Johnston
2013-10-17 15:28 ` [PATCH v3 3/4] xfs_progs: add dirent filetype to xfs_db version Mark Tinguely
2013-10-22 23:24 ` Dave Chinner
2013-10-23 23:43 ` Rich Johnston
2013-10-17 15:28 ` [PATCH v3 4/4] xfsprog: add mkfs.xfs sb v4 support for dirent filetype field Mark Tinguely
2013-10-22 23:26 ` Dave Chinner
2013-10-23 23:43 ` Rich Johnston
2013-10-24 16:15 ` Christoph Hellwig
2013-10-24 21:17 ` Dave Chinner
2013-10-24 21:29 ` Mark Tinguely
2013-10-17 22:08 ` [PATCH v3 0/4] xfsprogs: v4 inode type in directory Mark Tinguely
2013-10-18 3:19 ` Dave Chinner [this message]
2013-10-18 13:22 ` Mark Tinguely
2013-10-18 22:55 ` Dave Chinner
2013-10-20 18:17 ` Mark Tinguely
2013-10-22 23:27 ` Dave Chinner
2013-10-23 13:39 ` [patch 5/4] xfsprogs: add field types to v4 xfs_db directory entries Mark Tinguely
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=20131018031950.GT4446@dastard \
--to=david@fromorbit.com \
--cc=tinguely@sgi.com \
--cc=xfs@oss.sgi.com \
/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