gfs2-utils: master - fsck.gfs2: Refactor check_eattr_entries and add error messages

Bob Peterson rpeterso at fedoraproject.org
Tue Sep 29 18:38:17 UTC 2015


Gitweb:        http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=9ef99edb80d10cb58ed3b44a3198b6c44544b8b2
Commit:        9ef99edb80d10cb58ed3b44a3198b6c44544b8b2
Parent:        647bf61ecc78ba5bcfbacdc1ab95488cfe787aeb
Author:        Bob Peterson <rpeterso at redhat.com>
AuthorDate:    Thu Sep 24 08:52:47 2015 -0500
Committer:     Bob Peterson <rpeterso at redhat.com>
CommitterDate: Tue Sep 29 13:23:38 2015 -0500

fsck.gfs2: Refactor check_eattr_entries and add error messages

This patch adds a couple error messages to document when extended
attributes have errors in function check_eattr_entries. It also
refactors some of the code to make it more readable.
---
 gfs2/fsck/pass1.c |   28 +++++++++++++++++-----------
 1 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/gfs2/fsck/pass1.c b/gfs2/fsck/pass1.c
index f21886b..f5bf66b 100644
--- a/gfs2/fsck/pass1.c
+++ b/gfs2/fsck/pass1.c
@@ -891,6 +891,8 @@ static int check_eattr_entries(struct gfs2_inode *ip,
 {
 	struct gfs2_sbd *sdp = ip->i_sbd;
 	char ea_name[256];
+	uint32_t avail_size;
+	int max_ptrs;
 
 	if (!ea_hdr->ea_name_len){
 		/* Skip this entry for now */
@@ -904,22 +906,26 @@ static int check_eattr_entries(struct gfs2_inode *ip,
 	if (!GFS2_EATYPE_VALID(ea_hdr->ea_type) &&
 	   ((ea_hdr_prev) || (!ea_hdr_prev && ea_hdr->ea_type))){
 		/* Skip invalid entry */
+		log_err(_("EA (%s) type is invalid (%d > %d).\n"),
+			ea_name, ea_hdr->ea_type, GFS2_EATYPE_LAST);
 		return 1;
 	}
 
-	if (ea_hdr->ea_num_ptrs){
-		uint32_t avail_size;
-		int max_ptrs;
+	if (!ea_hdr->ea_num_ptrs)
+		return 0;
 
-		avail_size = sdp->sd_sb.sb_bsize - sizeof(struct gfs2_meta_header);
-		max_ptrs = (be32_to_cpu(ea_hdr->ea_data_len)+avail_size-1)/avail_size;
+	avail_size = sdp->sd_sb.sb_bsize - sizeof(struct gfs2_meta_header);
+	max_ptrs = (be32_to_cpu(ea_hdr->ea_data_len)+avail_size-1)/avail_size;
 
-		if (max_ptrs > ea_hdr->ea_num_ptrs) {
-			return 1;
-		} else {
-			log_debug( _("  Pointers Required: %d\n  Pointers Reported: %d\n"),
-				  max_ptrs, ea_hdr->ea_num_ptrs);
-		}
+	if (max_ptrs > ea_hdr->ea_num_ptrs) {
+		log_err(_("EA (%s) has incorrect number of pointers.\n"),
+			ea_name);
+		log_err(_("  Required:  %d\n  Reported:  %d\n"),
+			max_ptrs, ea_hdr->ea_num_ptrs);
+		return 1;
+	} else {
+		log_debug( _("  Pointers Required: %d\n  Pointers Reported: %d\n"),
+			   max_ptrs, ea_hdr->ea_num_ptrs);
 	}
 	return 0;
 }


More information about the cluster-commits mailing list