On 9/30/20 10:59 AM, Darrick J. Wong wrote: > On Wed, Sep 30, 2020 at 10:54:42AM -0500, Eric Sandeen wrote: >> Today, if one tries to repair a filesystem with a realtime subvol but >> forgets to specify the rtdev on the command line, the result sounds dire: >> >> Phase 1 - find and verify superblock... >> xfs_repair: filesystem has a realtime subvolume >> xfs_repair: realtime device init failed >> xfs_repair: cannot repair this filesystem. Sorry. >> >> We can be a bit more helpful, following the log device example: >> >> Phase 1 - find and verify superblock... >> This filesystem has a realtime subvolume. Specify rt device with the -r option. >> >> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> >> --- >> >> diff --git a/libxfs/init.c b/libxfs/init.c >> index cb8967bc..65cc3d4c 100644 >> --- a/libxfs/init.c >> +++ b/libxfs/init.c >> @@ -429,9 +429,9 @@ rtmount_init( >> if (sbp->sb_rblocks == 0) >> return 0; >> if (mp->m_rtdev_targp->dev == 0 && !(flags & LIBXFS_MOUNT_DEBUGGER)) { >> - fprintf(stderr, _("%s: filesystem has a realtime subvolume\n"), >> - progname); >> - return -1; >> + fprintf(stderr, _("This filesystem has a realtime subvolume. " >> + "Specify rt device with the -r option.\n")); > > _("%s: realtime subvolume must be specified.\n")? except if we were called by xfs_copy, it can't handle it at all. I'll need to move this to repair-specific code. > --D > >> + exit(1); >> } >> mp->m_rsumlevels = sbp->sb_rextslog + 1; >> mp->m_rsumsize = >> >