xfs
[Top] [All Lists]

Re: [PATCH 25/25] xfs: add write verifiers to log recovery

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 25/25] xfs: add write verifiers to log recovery
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Sat, 27 Oct 2012 07:31:07 +1100
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20121026085448.GD3035@xxxxxxxxxxxxx>
References: <1351146854-19343-1-git-send-email-david@xxxxxxxxxxxxx> <1351146854-19343-26-git-send-email-david@xxxxxxxxxxxxx> <20121026085448.GD3035@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, Oct 26, 2012 at 04:54:48AM -0400, Christoph Hellwig wrote:
> > +    * during log recovery, we don't have a quotainfo structure to
> > +    * pull the number of dquots per buffer out of, so we have to calculate
> > +    * it directly.
> > +    */
> > +   if (mp->m_log->l_flags & XLOG_ACTIVE_RECOVERY) {
> > +           dquots_per_buf = BBTOB(bp->b_length);
> > +           do_div(dquots_per_buf, sizeof(xfs_dqblk_t));
> 
> No need for do_div when dividing a 32-bit value by a constant.
> 
> I'd be almost tempted to do the calculation unconditionally to make the
> code cleaner, too.

Ok.

> > + * There is no easy way to do this except for trying a bunch of magic
> > + * number matches....
> 
> How do we make sure buffers used for the symlink or attr payload don't
> match this?

Remote attr buffers aren't logged - they are written sycnhronously
during the transaction - so won't get found by this. As for remote
symlink buffers, yeah, that might be a problem. Ultimately, both of
these buffer types are going to grow headers for CRCs, so this
problem will go away. I'm not sure how to address this problem
in the mean time short of putting the buffer content type into all
the buf_log_format headers. Do you have any better ideas?

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>