]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_growfs: support internal RT devices xfs-zoned
authorChristoph Hellwig <hch@lst.de>
Fri, 20 Dec 2024 03:55:59 +0000 (19:55 -0800)
committerChristoph Hellwig <hch@lst.de>
Mon, 14 Apr 2025 05:36:00 +0000 (07:36 +0200)
Allow RT growfs when rtstart is set in the geomety, and adjust the
queried size for it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
growfs/xfs_growfs.c

index 4b941403e2fda94e6f600dba0c82cbd69d7324db..0d0b2ae3e739c888a52690c6dc6e8275beed163e 100644 (file)
@@ -202,7 +202,7 @@ main(int argc, char **argv)
                        progname, fname);
                exit(1);
        }
-       if (rflag && !xi.rt.dev) {
+       if (rflag && (!xi.rt.dev && !geo.rtstart)) {
                fprintf(stderr,
                        _("%s: failed to access realtime device for %s\n"),
                        progname, fname);
@@ -211,6 +211,13 @@ main(int argc, char **argv)
 
        xfs_report_geom(&geo, datadev, logdev, rtdev);
 
+       if (geo.rtstart) {
+               xfs_daddr_t rtstart = geo.rtstart * (geo.blocksize / BBSIZE);
+
+               xi.rt.size = xi.data.size - rtstart;
+               xi.data.size = rtstart;
+       }
+
        ddsize = xi.data.size;
        dlsize = (xi.log.size ? xi.log.size :
                        geo.logblocks * (geo.blocksize / BBSIZE) );