Re: [PATCH 2/5] repair: fix some valgrind reported errors on i686

Christoph Hellwig
2011-10-10T13:14:52Z

On Mon, Oct 10, 2011 at 11:20:17AM +1100, Dave Chinner wrote:
> > Call me stupid, but I can't see how this could actually be a real
> > life issue. The first thing we do in the loop is to to write
> > to fsbno in btree_find. I'm fine adding this to shut up warnins,
> > but I can't see a real issue.
>
> If btree_find() fails to find the key being looked up, it returns
> without having initialised fsbno.

Indeed. The normal pattern for btree_find seems to be:

obj = btree_find(tree, key, &key_ptr);
if (!obj)
return;

which makes this fine.

The code in pf_batch_read effectively boils down to that due to
the

while (bplist[num] && num < MAX_BUFS && fsbno < max_fsbno) {

loop which stops executing the first conditional that evaluated to
false. So I can't see how this actually ever had an affect, but I'm
fine with fixing the warnings.

Btw, did I mention that the while loop over the bplist is completely
non-intuitive?