]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
mkfs: reject cowextsize after making final decision about reflink support
authorDarrick J. Wong <djwong@kernel.org>
Fri, 7 May 2021 14:42:17 +0000 (10:42 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Fri, 7 May 2021 14:42:17 +0000 (10:42 -0400)
There's a snippet of code that rejects cowextsize option if reflink is
disabled.  This really ought to be /after/ the last place where we can
turn off reflink.  Fix it so that people don't see stuff like this:

$ mkfs.xfs -r rtdev=b.img a.img -f -d cowextsize=16
illegal CoW extent size hint 16, must be less than 9600.

(reflink isn't supported when realtime is enabled)

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
mkfs/xfs_mkfs.c

index 0eac5336962a84455ef03d2b0933e0431ac12325..f84a42f9830c3a354439a797a8f56021d113cc04 100644 (file)
@@ -2164,13 +2164,6 @@ _("inode btree counters not supported without finobt support\n"));
                cli->sb_feat.inobtcnt = false;
        }
 
-       if ((cli->fsx.fsx_xflags & FS_XFLAG_COWEXTSIZE) &&
-           !cli->sb_feat.reflink) {
-               fprintf(stderr,
-_("cowextsize not supported without reflink support\n"));
-               usage();
-       }
-
        if (cli->xi->rtname) {
                if (cli->sb_feat.reflink && cli_opt_set(&mopts, M_REFLINK)) {
                        fprintf(stderr,
@@ -2187,6 +2180,13 @@ _("rmapbt not supported with realtime devices\n"));
                cli->sb_feat.rmapbt = false;
        }
 
+       if ((cli->fsx.fsx_xflags & FS_XFLAG_COWEXTSIZE) &&
+           !cli->sb_feat.reflink) {
+               fprintf(stderr,
+_("cowextsize not supported without reflink support\n"));
+               usage();
+       }
+
        /*
         * Copy features across to config structure now.
         */