Re: [PATCH 2/5] xfs_repair: don't log inode problems without printing resolution

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 05, 2023 at 08:37:44AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
> 
> If we're running in repair mode without the verbose flag, I see a bunch
> of stuff like this:
> 
> entry "FOO" in directory inode XXX points to non-existent inode YYY
> 
> This output is less than helpful, since it doesn't tell us that repair
> is actually fixing the problem.  We're fixing a corruption, so we should
> always say that we're going to fix it.
> 
> Fixes: 6c39a3cbda3 ("Don't trash lost+found in phase 4 Merge of master-melb:xfs-cmds:29144a by kenmcd.")
> Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
> ---
>  repair/phase6.c |   23 ++++++++++-------------
>  1 file changed, 10 insertions(+), 13 deletions(-)

Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>

> 
> 
> diff --git a/repair/phase6.c b/repair/phase6.c
> index 37573b4301b..39470185ea4 100644
> --- a/repair/phase6.c
> +++ b/repair/phase6.c
> @@ -1176,13 +1176,10 @@ entry_junked(
>  	xfs_ino_t	ino2)
>  {
>  	do_warn(msg, iname, ino1, ino2);
> -	if (!no_modify) {
> -		if (verbose)
> -			do_warn(_(", marking entry to be junked\n"));
> -		else
> -			do_warn("\n");
> -	} else
> -		do_warn(_(", would junk entry\n"));
> +	if (!no_modify)
> +		do_warn(_("junking entry\n"));
> +	else
> +		do_warn(_("would junk entry\n"));
>  	return !no_modify;
>  }
> 
> @@ -1682,7 +1679,7 @@ longform_dir2_entry_check_data(
>  		if (irec == NULL)  {
>  			nbad++;
>  			if (entry_junked(
> -	_("entry \"%s\" in directory inode %" PRIu64 " points to non-existent inode %" PRIu64 ""),
> +	_("entry \"%s\" in directory inode %" PRIu64 " points to non-existent inode %" PRIu64 ", "),
>  					fname, ip->i_ino, inum)) {
>  				dep->name[0] = '/';
>  				libxfs_dir2_data_log_entry(&da, bp, dep);
> @@ -1699,7 +1696,7 @@ longform_dir2_entry_check_data(
>  		if (is_inode_free(irec, ino_offset))  {
>  			nbad++;
>  			if (entry_junked(
> -	_("entry \"%s\" in directory inode %" PRIu64 " points to free inode %" PRIu64),
> +	_("entry \"%s\" in directory inode %" PRIu64 " points to free inode %" PRIu64 ", "),
>  					fname, ip->i_ino, inum)) {
>  				dep->name[0] = '/';
>  				libxfs_dir2_data_log_entry(&da, bp, dep);
> @@ -1717,7 +1714,7 @@ longform_dir2_entry_check_data(
>  			if (!inode_isadir(irec, ino_offset)) {
>  				nbad++;
>  				if (entry_junked(
> -	_("%s (ino %" PRIu64 ") in root (%" PRIu64 ") is not a directory"),
> +	_("%s (ino %" PRIu64 ") in root (%" PRIu64 ") is not a directory, "),
>  						ORPHANAGE, inum, ip->i_ino)) {
>  					dep->name[0] = '/';
>  					libxfs_dir2_data_log_entry(&da, bp, dep);
> @@ -1739,7 +1736,7 @@ longform_dir2_entry_check_data(
>  				dep->name, libxfs_dir2_data_get_ftype(mp, dep))) {
>  			nbad++;
>  			if (entry_junked(
> -	_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"),
> +	_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name, "),
>  					fname, inum, ip->i_ino)) {
>  				dep->name[0] = '/';
>  				libxfs_dir2_data_log_entry(&da, bp, dep);
> @@ -1770,7 +1767,7 @@ longform_dir2_entry_check_data(
>  				/* ".." should be in the first block */
>  				nbad++;
>  				if (entry_junked(
> -	_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is not in the the first block"), fname,
> +	_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is not in the the first block, "), fname,
>  						inum, ip->i_ino)) {
>  					dir_hash_junkit(hashtab, addr);
>  					dep->name[0] = '/';
> @@ -1803,7 +1800,7 @@ longform_dir2_entry_check_data(
>  				/* "." should be the first entry */
>  				nbad++;
>  				if (entry_junked(
> -	_("entry \"%s\" in dir %" PRIu64 " is not the first entry"),
> +	_("entry \"%s\" in dir %" PRIu64 " is not the first entry, "),
>  						fname, inum, ip->i_ino)) {
>  					dir_hash_junkit(hashtab, addr);
>  					dep->name[0] = '/';
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux