public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: Eric Sandeen <sandeen@redhat.com>, Eryu Guan <eguan@redhat.com>,
	xfs-oss <xfs@oss.sgi.com>
Subject: Re: [PATCH] xfs_repair: fix max block offset test
Date: Fri, 19 Dec 2014 15:26:56 -0500	[thread overview]
Message-ID: <20141219202656.GA19036@laptop.bfoster> (raw)
In-Reply-To: <5494745E.60500@sandeen.net>

On Fri, Dec 19, 2014 at 12:54:22PM -0600, Eric Sandeen wrote:
> On 12/18/14 9:18 AM, Brian Foster wrote:
> 
> hought this looked familiar:
> > 
> > http://oss.sgi.com/archives/xfs/2014-09/msg00524.html
> > 
> > Either one is fine with me. If we use the fix below, I think we should
> > update the error message since it technically refers to the extent
> > offset and we slightly tweak the meaning of the failure.
> > 
> > Brian
> 
> Ok, so here's what I wonder about with your patch.
> 
> +               if (irec.br_startoff > fs_max_file_offset)  {
> 
> What if the extent starting logical offset is *at* fs_max_file_offset
> (which is sadly in blocks, not bytes, for extra confusion points),
> but the extent is 1GB in length?
> 
> Isn't this a problem because we've now got files in the block which
> are beyond fs_max_file_offset, and probably also beyond sb_maxbytes?
> 

Yeah... at the time I simply viewed this as outside the scope of this
particular check due to the logic and wording. It makes sense to widen
the logic to catch anything that starts before yet extends past max
offset, assuming we aren't actually checking that anywhere else.

> I'm not sure I follow why you feel the message needs to change with
> my version:
> 
> +		/* Ensure this extent does not extend beyond the max offset */
> +		if (irec.br_startoff + irec.br_blockcount - 1 >
> +							fs_max_file_offset) {
>                         do_warn(
> _("inode %" PRIu64 " - extent offset too large - start %" PRIu64 ", "
>   "count %" PRIu64 ", offset %" PRIu64 "\n"),
>                                 ino, irec.br_startblock, irec.br_blockcount,
>                                 irec.br_startoff);
> 
> If any (block) offset in the file is beyond the max, then we say the offset is
> too large, and give it's physical block, its length, and its starting offset
> (granted, the message is a bit *weird* - br_startblock really doesn't matter
> here, but I don't think I've fundamentally changed the meaning of the test).

As discussed on irc, I read "extent offset" as the offset of the extent
in the file, so it seemed a bit confusing if br_startoff isn't
necessarily the problem.

Brian

> 
> However, I've come to learn that you are almost always right about subtleties
> like this, so perhaps you can explain again to me, using smaller words.  :)
> 
> -Eric
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs

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

  reply	other threads:[~2014-12-19 20:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-11 17:54 [PATCH] xfs_repair: fix max block offset test Eric Sandeen
2014-12-18 15:18 ` Brian Foster
2014-12-18 16:43   ` Eric Sandeen
2014-12-19 18:54   ` Eric Sandeen
2014-12-19 20:26     ` Brian Foster [this message]
2014-12-19 19:58 ` [PATCH V2] " Eric Sandeen
2014-12-19 20:31   ` Brian Foster

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=20141219202656.GA19036@laptop.bfoster \
    --to=bfoster@redhat.com \
    --cc=eguan@redhat.com \
    --cc=sandeen@redhat.com \
    --cc=sandeen@sandeen.net \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox