On Sat, Jun 09, 2018 at 10:07:45PM -0700, Allison Henderson wrote: > mkfs: enable formatting with parent pointers > Enable parent pointer support in mkfs via the '-n parent' parameter. > > Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> > --- > mkfs/xfs_mkfs.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c > index 78d0ce5..b9a8b00 100644 > --- a/mkfs/xfs_mkfs.c > +++ b/mkfs/xfs_mkfs.c > @@ -104,6 +104,7 @@ enum { > N_SIZE = 0, > N_VERSION, > N_FTYPE, > + N_PARENT, > N_MAX_OPTS, > }; > > @@ -550,6 +551,7 @@ struct opt_params nopts = { > [N_SIZE] = "size", > [N_VERSION] = "version", > [N_FTYPE] = "ftype", > + [N_PARENT] = "parent", > }, > .subopt_params = { > { .index = N_SIZE, > @@ -572,6 +574,12 @@ struct opt_params nopts = { > .maxval = 1, > .defaultval = 1, > }, > + { .index = N_PARENT, > + .conflicts = { { NULL, LAST_CONFLICT } }, > + .minval = 0, > + .maxval = 1, > + .defaultval = 1, > + }, > }, > }; > > @@ -876,7 +884,7 @@ usage( void ) > /* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n\n\ > sunit=value|su=num,sectsize=num,lazy-count=0|1]\n\ > /* label */ [-L label (maximum 12 characters)]\n\ > -/* naming */ [-n size=num,version=2|ci,ftype=0|1]\n\ > +/* naming */ [-n size=num,version=2|ci,ftype=0|1,parent=0|1]\n\ > /* no-op info only */ [-N]\n\ > /* prototype file */ [-p fname]\n\ > /* quiet */ [-q]\n\ > @@ -1615,6 +1623,9 @@ naming_opts_parser( > case N_FTYPE: > cli->sb_feat.dirftype = getnum(value, opts, subopt); > break; > + case N_PARENT: > + cli->sb_feat.parent_pointers = getnum(value, &nopts, N_PARENT); > + break; > default: > return -EINVAL; > } validate_sb_features() needs to disallow parent pointers on v4 filesystems. See "reflink not supported without CRC support" around xfs_mkfs.c line 2015. --D > @@ -2887,6 +2898,8 @@ sb_set_features( > sbp->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_RMAPBT; > if (fp->reflink) > sbp->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_REFLINK; > + if (fp->parent_pointers) > + sbp->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_PARENT; > > /* > * Sparse inode chunk support has two main inode alignment requirements. > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html