On Thu, Jul 06, 2017 at 08:31:38PM -0700, Darrick J. Wong wrote: > In e5cc9d560a ("mkfs: set agsize prior to calculating minimum log > size"), we set the ag size in the superblock structure so that we can > calculate the maximum btree height correctly. The btree heights are > used to calculate transaction reservation sizes; these sizes are used to > compute the minimum log length; and the minimum log length is checked by > the kernel. > > Unfortunately, I didn't realize that some of the btree sizing functions > also depend on the agblklog (log2 of the ag size), so we've been > underestimating the minimum log length allowable, which results in mkfs > formatting filesystems that the kernel refuses to mount. > > This can be trivially reproduced by formatting a small (~800M) volume > with rmap and reflink turned on. > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > --- Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > mkfs/maxtrres.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mkfs/maxtrres.c b/mkfs/maxtrres.c > index fba7818..69ec67a 100644 > --- a/mkfs/maxtrres.c > +++ b/mkfs/maxtrres.c > @@ -54,6 +54,7 @@ max_trans_res( > sbp->sb_blocklog = blocklog; > sbp->sb_blocksize = 1 << blocklog; > sbp->sb_agblocks = agsize; > + sbp->sb_agblklog = (uint8_t)libxfs_log2_roundup((unsigned int)agsize); > sbp->sb_inodelog = inodelog; > sbp->sb_inopblog = blocklog - inodelog; > sbp->sb_inodesize = 1 << inodelog; > -- > 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