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 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs