All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>
Cc: Eric Sandeen <sandeen@redhat.com>, xfs <xfs@oss.sgi.com>
Subject: Re: [PATCH] xfs: fix endianness error when checking log block crc on big endian platforms
Date: Tue, 26 Jan 2016 14:13:12 -0500	[thread overview]
Message-ID: <20160126191310.GA54800@bfoster.bfoster> (raw)
In-Reply-To: <20160126180500.GA5852@birch.djwong.org>

On Tue, Jan 26, 2016 at 10:05:00AM -0800, Darrick J. Wong wrote:
> Since the checksum function and the field are both __le32, don't
> perform endian conversion when comparing the two.  This fixes mount
> failures on ppc64 in 4.5-rc1.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---

So somehow this first got munged in commit:

  b94fb2d1 xfs: refactor and open code log record crc check

... which was intended to only be a refactoring patch. Instead, it
removes the following line:

-       if (crc != rhead->h_crc) {

... and replaces it with:

+       if (crc != le32_to_cpu(rhead->h_crc)) {

No idea how that happened. Maybe I was just looking at the log message
code and had a thinko. Anyways, it was followed up with commit:

	6528250b xfs: support a crc verification only log record pass

... which adds the code you've fixed here and probably just copied the
busted check.

>  fs/xfs/xfs_log_recover.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
> index ac80f39..52dd946 100644
> --- a/fs/xfs/xfs_log_recover.c
> +++ b/fs/xfs/xfs_log_recover.c
> @@ -4502,7 +4502,7 @@ xlog_recover_process(
>  	 * know precisely what failed.
>  	 */
>  	if (pass == XLOG_RECOVER_CRCPASS) {
> -		if (rhead->h_crc && crc != le32_to_cpu(rhead->h_crc))
> +		if (rhead->h_crc && crc != rhead->h_crc)
>  			return -EFSBADCRC;
>  		return 0;
>  	}

There's another check a few lines after this that is also broken, based
on the first commit referenced above. Do you want me to send a v2 patch
or would you like to? I'll run some ppc64 testing either way...

Brian

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

      reply	other threads:[~2016-01-26 19:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-26 18:05 [PATCH] xfs: fix endianness error when checking log block crc on big endian platforms Darrick J. Wong
2016-01-26 19:13 ` Brian Foster [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160126191310.GA54800@bfoster.bfoster \
    --to=bfoster@redhat.com \
    --cc=darrick.wong@oracle.com \
    --cc=sandeen@redhat.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.