Commit 13c00041 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher
Browse files

gfs2: Sanitize gfs2_meta_check, gfs2_metatype_check, gfs2_io_error



Change those functions to either return a useful value, or nothing at
all.

Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: default avatarAndrew Price <anprice@redhat.com>
parent 6e422408
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -471,11 +471,9 @@ void gfs2_consist_rgrpd_i(struct gfs2_rgrpd *rgd,

/*
 * gfs2_meta_check_ii - Flag a magic number consistency error and withdraw
 * Returns: -1 if this call withdrew the machine,
 *          -2 if it was already withdrawn
 */

int gfs2_meta_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
void gfs2_meta_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
			const char *function, char *file,
			unsigned int line)
{
@@ -486,16 +484,13 @@ int gfs2_meta_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
		(unsigned long long)bh->b_blocknr,
		function, file, line);
	gfs2_withdraw(sdp);
	return -1;
}

/*
 * gfs2_metatype_check_ii - Flag a metadata type consistency error and withdraw
 * Returns: -1 if this call withdrew the machine,
 *          -2 if it was already withdrawn
 */

int gfs2_metatype_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
void gfs2_metatype_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
			    u16 type, u16 t, const char *function,
			    char *file, unsigned int line)
{
@@ -506,7 +501,6 @@ int gfs2_metatype_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
		(unsigned long long)bh->b_blocknr, type, t,
		function, file, line);
	gfs2_withdraw(sdp);
	return -1;
}

/*
@@ -515,7 +509,7 @@ int gfs2_metatype_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
 *          0 if it was already withdrawn
 */

int gfs2_io_error_i(struct gfs2_sbd *sdp, const char *function, char *file,
void gfs2_io_error_i(struct gfs2_sbd *sdp, const char *function, char *file,
		     unsigned int line)
{
	gfs2_lm(sdp,
@@ -523,7 +517,6 @@ int gfs2_io_error_i(struct gfs2_sbd *sdp, const char *function, char *file,
		"function = %s, file = %s, line = %u\n",
		function, file, line);
	gfs2_withdraw(sdp);
	return -1;
}

/*
+19 −15
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ void gfs2_consist_rgrpd_i(struct gfs2_rgrpd *rgd,
gfs2_consist_rgrpd_i((rgd), __func__, __FILE__, __LINE__)


int gfs2_meta_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
void gfs2_meta_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
			const char *function,
			char *file, unsigned int line);

@@ -108,7 +108,7 @@ static inline int gfs2_meta_check(struct gfs2_sbd *sdp,
	return 0;
}

int gfs2_metatype_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
void gfs2_metatype_check_ii(struct gfs2_sbd *sdp, struct buffer_head *bh,
			    u16 type, u16 t,
			    const char *function,
			    char *file, unsigned int line);
@@ -122,12 +122,16 @@ static inline int gfs2_metatype_check_i(struct gfs2_sbd *sdp,
	struct gfs2_meta_header *mh = (struct gfs2_meta_header *)bh->b_data;
	u32 magic = be32_to_cpu(mh->mh_magic);
	u16 t = be32_to_cpu(mh->mh_type);
	if (unlikely(magic != GFS2_MAGIC))
		return gfs2_meta_check_ii(sdp, bh, function,
	if (unlikely(magic != GFS2_MAGIC)) {
		gfs2_meta_check_ii(sdp, bh, function,
				   file, line);
        if (unlikely(t != type))
		return gfs2_metatype_check_ii(sdp, bh, type, t, function,
		return -EIO;
	}
        if (unlikely(t != type)) {
		gfs2_metatype_check_ii(sdp, bh, type, t, function,
				       file, line);
		return -EIO;
	}
	return 0;
}

@@ -144,7 +148,7 @@ static inline void gfs2_metatype_set(struct buffer_head *bh, u16 type,
}


int gfs2_io_error_i(struct gfs2_sbd *sdp, const char *function,
void gfs2_io_error_i(struct gfs2_sbd *sdp, const char *function,
		     char *file, unsigned int line);

int check_journal_clean(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd,