diff mbox series

[4/4] xfs_repair: don't guess about failure reason in phase6

Message ID 1639167697-15392-5-git-send-email-sandeen@sandeen.net (mailing list archive)
State Accepted, archived
Headers show
Series xfsprogs: misc small fixes | expand

Commit Message

Eric Sandeen Dec. 10, 2021, 8:21 p.m. UTC
From: Eric Sandeen <sandeen@redhat.com>

There are many error messages in phase 6 which say
"filesystem may be out of space," when in reality the failure could
have been corruption or some other issue.  Rather than guessing, and
emitting a confusing and possibly-wrong message, use the existing
res_failed() for any xfs_trans_alloc failures, and simply print the
error number in the other cases.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
---
 repair/phase6.c | 30 +++++++++---------------------
 1 file changed, 9 insertions(+), 21 deletions(-)

Comments

Darrick J. Wong Dec. 11, 2021, 12:23 a.m. UTC | #1
On Fri, Dec 10, 2021 at 02:21:37PM -0600, Eric Sandeen wrote:
> From: Eric Sandeen <sandeen@redhat.com>
> 
> There are many error messages in phase 6 which say
> "filesystem may be out of space," when in reality the failure could
> have been corruption or some other issue.  Rather than guessing, and
> emitting a confusing and possibly-wrong message, use the existing
> res_failed() for any xfs_trans_alloc failures, and simply print the
> error number in the other cases.
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>

Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  repair/phase6.c | 30 +++++++++---------------------
>  1 file changed, 9 insertions(+), 21 deletions(-)
> 
> diff --git a/repair/phase6.c b/repair/phase6.c
> index 696a642..df22daa 100644
> --- a/repair/phase6.c
> +++ b/repair/phase6.c
> @@ -1067,9 +1067,7 @@ mv_orphanage(
>  			err = -libxfs_trans_alloc(mp, &M_RES(mp)->tr_rename,
>  						  nres, 0, 0, &tp);
>  			if (err)
> -				do_error(
> -	_("space reservation failed (%d), filesystem may be out of space\n"),
> -					err);
> +				res_failed(err);
>  
>  			libxfs_trans_ijoin(tp, orphanage_ip, 0);
>  			libxfs_trans_ijoin(tp, ino_p, 0);
> @@ -1078,8 +1076,7 @@ mv_orphanage(
>  						ino, nres);
>  			if (err)
>  				do_error(
> -	_("name create failed in %s (%d), filesystem may be out of space\n"),
> -					ORPHANAGE, err);
> +	_("name create failed in %s (%d)\n"), ORPHANAGE, err);
>  
>  			if (irec)
>  				add_inode_ref(irec, ino_offset);
> @@ -1091,8 +1088,7 @@ mv_orphanage(
>  					orphanage_ino, nres);
>  			if (err)
>  				do_error(
> -	_("creation of .. entry failed (%d), filesystem may be out of space\n"),
> -					err);
> +	_("creation of .. entry failed (%d)\n"), err);
>  
>  			inc_nlink(VFS_I(ino_p));
>  			libxfs_trans_log_inode(tp, ino_p, XFS_ILOG_CORE);
> @@ -1104,9 +1100,7 @@ mv_orphanage(
>  			err = -libxfs_trans_alloc(mp, &M_RES(mp)->tr_rename,
>  						  nres, 0, 0, &tp);
>  			if (err)
> -				do_error(
> -	_("space reservation failed (%d), filesystem may be out of space\n"),
> -					err);
> +				res_failed(err);
>  
>  			libxfs_trans_ijoin(tp, orphanage_ip, 0);
>  			libxfs_trans_ijoin(tp, ino_p, 0);
> @@ -1116,8 +1110,7 @@ mv_orphanage(
>  						ino, nres);
>  			if (err)
>  				do_error(
> -	_("name create failed in %s (%d), filesystem may be out of space\n"),
> -					ORPHANAGE, err);
> +	_("name create failed in %s (%d)\n"), ORPHANAGE, err);
>  
>  			if (irec)
>  				add_inode_ref(irec, ino_offset);
> @@ -1135,8 +1128,7 @@ mv_orphanage(
>  						nres);
>  				if (err)
>  					do_error(
> -	_("name replace op failed (%d), filesystem may be out of space\n"),
> -						err);
> +	_("name replace op failed (%d)\n"), err);
>  			}
>  
>  			err = -libxfs_trans_commit(tp);
> @@ -1156,9 +1148,7 @@ mv_orphanage(
>  		err = -libxfs_trans_alloc(mp, &M_RES(mp)->tr_remove,
>  					  nres, 0, 0, &tp);
>  		if (err)
> -			do_error(
> -	_("space reservation failed (%d), filesystem may be out of space\n"),
> -				err);
> +			res_failed(err);
>  
>  		libxfs_trans_ijoin(tp, orphanage_ip, 0);
>  		libxfs_trans_ijoin(tp, ino_p, 0);
> @@ -1167,8 +1157,7 @@ mv_orphanage(
>  						nres);
>  		if (err)
>  			do_error(
> -	_("name create failed in %s (%d), filesystem may be out of space\n"),
> -				ORPHANAGE, err);
> +	_("name create failed in %s (%d)\n"), ORPHANAGE, err);
>  		ASSERT(err == 0);
>  
>  		set_nlink(VFS_I(ino_p), 1);
> @@ -1351,8 +1340,7 @@ longform_dir2_rebuild(
>  						nres);
>  		if (error) {
>  			do_warn(
> -_("name create failed in ino %" PRIu64 " (%d), filesystem may be out of space\n"),
> -				ino, error);
> +_("name create failed in ino %" PRIu64 " (%d)\n"), ino, error);
>  			goto out_bmap_cancel;
>  		}
>  
> -- 
> 1.8.3.1
>
diff mbox series

Patch

diff --git a/repair/phase6.c b/repair/phase6.c
index 696a642..df22daa 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
@@ -1067,9 +1067,7 @@  mv_orphanage(
 			err = -libxfs_trans_alloc(mp, &M_RES(mp)->tr_rename,
 						  nres, 0, 0, &tp);
 			if (err)
-				do_error(
-	_("space reservation failed (%d), filesystem may be out of space\n"),
-					err);
+				res_failed(err);
 
 			libxfs_trans_ijoin(tp, orphanage_ip, 0);
 			libxfs_trans_ijoin(tp, ino_p, 0);
@@ -1078,8 +1076,7 @@  mv_orphanage(
 						ino, nres);
 			if (err)
 				do_error(
-	_("name create failed in %s (%d), filesystem may be out of space\n"),
-					ORPHANAGE, err);
+	_("name create failed in %s (%d)\n"), ORPHANAGE, err);
 
 			if (irec)
 				add_inode_ref(irec, ino_offset);
@@ -1091,8 +1088,7 @@  mv_orphanage(
 					orphanage_ino, nres);
 			if (err)
 				do_error(
-	_("creation of .. entry failed (%d), filesystem may be out of space\n"),
-					err);
+	_("creation of .. entry failed (%d)\n"), err);
 
 			inc_nlink(VFS_I(ino_p));
 			libxfs_trans_log_inode(tp, ino_p, XFS_ILOG_CORE);
@@ -1104,9 +1100,7 @@  mv_orphanage(
 			err = -libxfs_trans_alloc(mp, &M_RES(mp)->tr_rename,
 						  nres, 0, 0, &tp);
 			if (err)
-				do_error(
-	_("space reservation failed (%d), filesystem may be out of space\n"),
-					err);
+				res_failed(err);
 
 			libxfs_trans_ijoin(tp, orphanage_ip, 0);
 			libxfs_trans_ijoin(tp, ino_p, 0);
@@ -1116,8 +1110,7 @@  mv_orphanage(
 						ino, nres);
 			if (err)
 				do_error(
-	_("name create failed in %s (%d), filesystem may be out of space\n"),
-					ORPHANAGE, err);
+	_("name create failed in %s (%d)\n"), ORPHANAGE, err);
 
 			if (irec)
 				add_inode_ref(irec, ino_offset);
@@ -1135,8 +1128,7 @@  mv_orphanage(
 						nres);
 				if (err)
 					do_error(
-	_("name replace op failed (%d), filesystem may be out of space\n"),
-						err);
+	_("name replace op failed (%d)\n"), err);
 			}
 
 			err = -libxfs_trans_commit(tp);
@@ -1156,9 +1148,7 @@  mv_orphanage(
 		err = -libxfs_trans_alloc(mp, &M_RES(mp)->tr_remove,
 					  nres, 0, 0, &tp);
 		if (err)
-			do_error(
-	_("space reservation failed (%d), filesystem may be out of space\n"),
-				err);
+			res_failed(err);
 
 		libxfs_trans_ijoin(tp, orphanage_ip, 0);
 		libxfs_trans_ijoin(tp, ino_p, 0);
@@ -1167,8 +1157,7 @@  mv_orphanage(
 						nres);
 		if (err)
 			do_error(
-	_("name create failed in %s (%d), filesystem may be out of space\n"),
-				ORPHANAGE, err);
+	_("name create failed in %s (%d)\n"), ORPHANAGE, err);
 		ASSERT(err == 0);
 
 		set_nlink(VFS_I(ino_p), 1);
@@ -1351,8 +1340,7 @@  longform_dir2_rebuild(
 						nres);
 		if (error) {
 			do_warn(
-_("name create failed in ino %" PRIu64 " (%d), filesystem may be out of space\n"),
-				ino, error);
+_("name create failed in ino %" PRIu64 " (%d)\n"), ino, error);
 			goto out_bmap_cancel;
 		}