Re: [PATCH 2/7] omfs: add inode routines

From: Bob Copeland
Date: Tue Apr 15 2008 - 14:34:16 EST


On Tue, Apr 15, 2008 at 2:03 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
> Hmm, looks like error handling needs a makeover if this is really to
> become example code. See comments inline.

Thanks for the review Miklos.

> > + mark_buffer_dirty(bh);
> > + if (wait) {
> > + sync_dirty_buffer(bh);
> > + if (buffer_req(bh) && !buffer_uptodate(bh))
> > + ret = -EIO;
>
> Hmm, here it sets ret, but doesn't exit. Deliberate?

It was - if sync fails, it should still try writing the mirrors. Plus
bh and bh2 get released subsequently.

> > + iget_failed(inode);
> > + return ERR_PTR(-EIO);
>
> Should be:
>
> if (!bh)
> goto iget_failed;

Nod.

> > +out:
> > + ret = -EINVAL;
> > +

> > + if (bh)
> > + brelse(bh);
>
> This is weird. This should be done by jumping to the proper label
> between the brleses.

Hrm, brelse(NULL) is allowed so the check is suspect anyway. I did
this in a couple of other places, so I'll fix those up too.

Thanks!

--
Bob Copeland %% www.bobcopeland.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/