On Wed, Jan 03, 2018 at 08:28:03AM -0500, Brian Foster wrote: > On Wed, Jan 03, 2018 at 05:27:48PM +1100, Dave Chinner wrote: > > + if (be16_to_cpu(bests[findex]) != NULLDATAOFF && > > + be16_to_cpu(bests[findex]) >= length) { > > + dbno = freehdr.firstdb + findex; > > + break; > > } > > + } while (++findex < freehdr.nvalid); > > + > > + /* Drop the block if we done with the freeblock */ > > "... if we're done ..." > > Also FWIW, according to the comment it looks like the only reason the > freehdr conversion is elevated to this scope is to accommodate gcc > foolishness. If so, I'm wondering if a simple NULL init of bests at the > top of the function would avoid that problem and allow us to move the > code to where it was apparently intended to be in the first place. Hm? Yeah, looking at the follow-on patch, there's a gigantic amount of cleanup needed in this function. There's a bunch of "gcc is so stupid" hacks amongst the code because the function is too long for gcc correctly determine variable usage. I might sit down and factor it properly because that will make it a whole lot simpler and easier to understand... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html