Re: [patch 3/8] mm: rotate_reclaimable_page() cleanup

From: Andrew Morton
Date: Wed Mar 19 2008 - 15:35:47 EST


On Tue, 18 Mar 2008 12:56:34 +0100 Miklos Szeredi <miklos@xxxxxxxxxx> wrote:

> > > -int rotate_reclaimable_page(struct page *page)
> > > +void rotate_reclaimable_page(struct page *page)
> > > {
> > > - struct pagevec *pvec;
> > > - unsigned long flags;
> > > -
> > > - if (PageLocked(page))
> > > - return 1;
> > > - if (PageDirty(page))
> > > - return 1;
> > > - if (PageActive(page))
> > > - return 1;
> > > - if (!PageLRU(page))
> > > - return 1;
> >
> > Might be me, but I find the above easier to read than

Me too, but (believe it or not) sometimes I will eschew comment ;)

> > > + if (!PageLocked(page) && !PageDirty(page) && !PageActive(page) &&
> > > + PageLRU(page)) {
> > >
>
> Matter of taste, returning from a middle of a function is generally to
> be avoided (unless not).

Avoiding multiple returns is more than a matter of taste: the practice is a
source of code bloat, resource leaks and locking errors.

But we do do it quite commonly at the start of the function when checking the
arguments, before the function has actually altered anything.


--
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/