From: Christoph Hellwig Date: Mon, 14 Apr 2025 05:36:26 +0000 (+0200) Subject: xfs_growfs: support internal RT devices X-Git-Tag: v6.15.0~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fd4eb274c828604281c326aa1f104034e3f226b7;p=thirdparty%2Fxfsprogs-dev.git xfs_growfs: support internal RT devices Allow RT growfs when rtstart is set in the geomety, and adjust the queried size for it. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong --- diff --git a/growfs/xfs_growfs.c b/growfs/xfs_growfs.c index 4b941403e..0d0b2ae3e 100644 --- a/growfs/xfs_growfs.c +++ b/growfs/xfs_growfs.c @@ -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) );