From: Eric Sandeen <sandeen@sandeen.net>
To: Bill O'Donnell <billodo@redhat.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 2/2 v2] xfs_repair: new secondary superblock search method] xfs_repair: new secondary superblock search method
Date: Wed, 10 Feb 2016 09:51:03 -0600 [thread overview]
Message-ID: <56BB5C67.6040906@sandeen.net> (raw)
In-Reply-To: <20160210154300.GA9472@redhat.com>
On 2/10/16 9:43 AM, Bill O'Donnell wrote:
>> I'd make __find_secondary_sb() take (sb, start, skip) i.e. send in
>> > this:
>> >
>>> > > + retval = __find_secondary_sb(rsb, agsize, agsize);
>>> > > + if (!retval) {
>>> > > + /*
>>> > > + * fallback: use minimum agsize for skipsize
>>> > > + */
>>> > > + retval = __find_secondary_sb(rsb, XFS_AG_MIN_BYTES, BSIZE);
>>> > > + }
>> >
>> > and the function is something like:
>> >
>> > static int
>> > __find_secondary_sb(
>> > xfs_sb_t *rsb,
>> > xfs_off_t start,
>> > xfs_off_t skip)
>> >
>> > {
>> >
>> > ...
>> >
>> > for (done = 0, off = start; !done ; off += skip) {
>> > ...
>> > if (lseek64(x.dfd, off, SEEK_SET) != off)
>> > done = 1;
>> >
>> > if (!done && (read(x.dfd, sb, BSIZE)) <= 0)
>> > done = 1;
> But, bsize is used here:
> ...
> * check the buffer 512 bytes at a time since
> * we don't know how big the sectors really are.
> */
> for (i = 0; !done && i < bsize; i += BBSIZE) {
> ...
> so, don't we still need to populate bsize? Or does it make more
> sense to just use BBSIZE in the conditional, ala:
> for (i = 0; !done && i < BBSIZE; i += BBSIZE)
Oh, right, sorry. yes, keep the assignment:
if (!done && (bsize = read(x.dfd, sb, BSIZE)) <= 0) {
That handles a short read at the end; we ask for BSIZE, actually
read bsize, and then we need to iterate over what actually got read
(bsize).
BSIZE, bsize ... clear as mud. :(
-Eric
>> >
>> >
>> > because you really can't deduce both the starting point and the skip-ahead
>> > size from just one parameter.
> Agreed.
> Thanks for your thorough reviews :)
> Bill
>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
prev parent reply other threads:[~2016-02-10 15:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-10 1:34 [[PATCH 2/2 v2] xfs_repair: new secondary superblock search method] xfs_repair: new secondary superblock search method Bill O'Donnell
2016-02-10 4:49 ` [PATCH " Eric Sandeen
2016-02-10 15:43 ` Bill O'Donnell
2016-02-10 15:51 ` Eric Sandeen [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=56BB5C67.6040906@sandeen.net \
--to=sandeen@sandeen.net \
--cc=billodo@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.