From e88513f6025adad6fcbbc2db466c8ddf959c06e1 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Thu, 19 Dec 2024 19:51:06 -0800 Subject: [PATCH] xfs_spaceman: handle internal RT devices Handle the synthetic fmr_device values for fsmap. Signed-off-by: Christoph Hellwig Reviewed-by: "Darrick J. Wong" --- spaceman/freesp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/spaceman/freesp.c b/spaceman/freesp.c index dfbec52a7..9ad321c48 100644 --- a/spaceman/freesp.c +++ b/spaceman/freesp.c @@ -140,12 +140,19 @@ scan_ag( if (agno != NULLAGNUMBER) { l->fmr_physical = cvt_agbno_to_b(xfd, agno, 0); h->fmr_physical = cvt_agbno_to_b(xfd, agno + 1, 0); - l->fmr_device = h->fmr_device = file->fs_path.fs_datadev; + if (file->xfd.fsgeom.rtstart) + l->fmr_device = XFS_DEV_DATA; + else + l->fmr_device = file->fs_path.fs_datadev; } else { l->fmr_physical = 0; h->fmr_physical = ULLONG_MAX; - l->fmr_device = h->fmr_device = file->fs_path.fs_rtdev; + if (file->xfd.fsgeom.rtstart) + l->fmr_device = XFS_DEV_RT; + else + l->fmr_device = file->fs_path.fs_rtdev; } + h->fmr_device = l->fmr_device; h->fmr_owner = ULLONG_MAX; h->fmr_flags = UINT_MAX; h->fmr_offset = ULLONG_MAX; -- 2.50.1