Re: [PATCH 3/5] xfs_repair: fix messaging when shortform_dir2_junk is called

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

 



On Mon, Jun 05, 2023 at 08:37:50AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
> 
> This function is called when we've decide to junk a shortform directory
> entry.  This is obviously corruption of some kind, so we should always
> say something, particularly if we're in !verbose repair mode.
> Otherwise, if we're in non-verbose repair mode, we print things like:
> 
> entry "FOO" in shortform directory XXX references non-existent inode YYY
> 
> Without telling the sysadmin that we're removing the dirent.
> 
> Fixes: aaca101b1ae ("xfs_repair: add support for validating dirent ftype field")
> Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
> ---
>  repair/phase6.c |   17 +++++++----------
>  1 file changed, 7 insertions(+), 10 deletions(-)
> 

Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>

> 
> diff --git a/repair/phase6.c b/repair/phase6.c
> index 39470185ea4..a457429b3c6 100644
> --- a/repair/phase6.c
> +++ b/repair/phase6.c
> @@ -2441,10 +2441,7 @@ shortform_dir2_junk(
>  	 */
>  	(*index)--;
> 
> -	if (verbose)
> -		do_warn(_("junking entry\n"));
> -	else
> -		do_warn("\n");
> +	do_warn(_("junking entry\n"));
>  	return sfep;
>  }
> 
> @@ -2593,7 +2590,7 @@ shortform_dir2_entry_check(
> 
>  		if (irec == NULL)  {
>  			do_warn(
> -	_("entry \"%s\" in shortform directory %" PRIu64 " references non-existent inode %" PRIu64 "\n"),
> +	_("entry \"%s\" in shortform directory %" PRIu64 " references non-existent inode %" PRIu64 ", "),
>  				fname, ino, lino);
>  			next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
>  						&max_size, &i, &bytes_deleted,
> @@ -2610,7 +2607,7 @@ shortform_dir2_entry_check(
>  		 */
>  		if (is_inode_free(irec, ino_offset))  {
>  			do_warn(
> -	_("entry \"%s\" in shortform directory inode %" PRIu64 " points to free inode %" PRIu64 "\n"),
> +	_("entry \"%s\" in shortform directory inode %" PRIu64 " points to free inode %" PRIu64 ", "),
>  				fname, ino, lino);
>  			next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
>  						&max_size, &i, &bytes_deleted,
> @@ -2626,7 +2623,7 @@ shortform_dir2_entry_check(
>  			 */
>  			if (!inode_isadir(irec, ino_offset)) {
>  				do_warn(
> -	_("%s (ino %" PRIu64 ") in root (%" PRIu64 ") is not a directory"),
> +	_("%s (ino %" PRIu64 ") in root (%" PRIu64 ") is not a directory, "),
>  					ORPHANAGE, lino, ino);
>  				next_sfep = shortform_dir2_junk(mp, sfp, sfep,
>  						lino, &max_size, &i,
> @@ -2648,7 +2645,7 @@ shortform_dir2_entry_check(
>  				lino, sfep->namelen, sfep->name,
>  				libxfs_dir2_sf_get_ftype(mp, sfep))) {
>  			do_warn(
> -_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"),
> +_("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name, "),
>  				fname, lino, ino);
>  			next_sfep = shortform_dir2_junk(mp, sfp, sfep, lino,
>  						&max_size, &i, &bytes_deleted,
> @@ -2673,7 +2670,7 @@ _("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"),
>  			if (is_inode_reached(irec, ino_offset))  {
>  				do_warn(
>  	_("entry \"%s\" in directory inode %" PRIu64
> -	  " references already connected inode %" PRIu64 ".\n"),
> +	  " references already connected inode %" PRIu64 ", "),
>  					fname, ino, lino);
>  				next_sfep = shortform_dir2_junk(mp, sfp, sfep,
>  						lino, &max_size, &i,
> @@ -2697,7 +2694,7 @@ _("entry \"%s\" (ino %" PRIu64 ") in dir %" PRIu64 " is a duplicate name"),
>  				do_warn(
>  	_("entry \"%s\" in directory inode %" PRIu64
>  	  " not consistent with .. value (%" PRIu64
> -	  ") in inode %" PRIu64 ",\n"),
> +	  ") in inode %" PRIu64 ", "),
>  					fname, ino, parent, lino);
>  				next_sfep = shortform_dir2_junk(mp, sfp, sfep,
>  						lino, &max_size, &i,
> 



[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