]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
mkfs: don't allow creation of realtime files from a proto file
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 30 Sep 2020 14:59:15 +0000 (10:59 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Wed, 30 Sep 2020 14:59:15 +0000 (10:59 -0400)
If someone runs mkfs with rtinherit=1, a realtime volume configured, and
a protofile that creates a regular file in the filesystem, mkfs will
error out with "Function not implemented" because userspace doesn't know
how to allocate extents from the rt bitmap.  Catch this specific case
and hand back a somewhat nicer explanation of what happened.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
mkfs/proto.c

index 9db8fe2d64477e74cffa42dc4e637dd21c8d6c2c..20a7cc3bb5d54d88f3eb3011d34b3bd1ac75596a 100644 (file)
@@ -244,6 +244,12 @@ newfile(
                nb = XFS_B_TO_FSB(mp, len);
                nmap = 1;
                error = -libxfs_bmapi_write(tp, ip, 0, nb, 0, nb, &map, &nmap);
+               if (error == ENOSYS && XFS_IS_REALTIME_INODE(ip)) {
+                       fprintf(stderr,
+       _("%s: creating realtime files from proto file not supported.\n"),
+                                       progname);
+                       exit(1);
+               }
                if (error) {
                        fail(_("error allocating space for a file"), error);
                }