On Tue, 27 Feb 2007, Andy Whitcroft wrote:

> +static int __isolate_lru_page(struct page *page, int active)
> +{
> +     int ret = -EINVAL;
> +
> +     if (PageLRU(page) && (PageActive(page) == active)) {
> +             ret = -EBUSY;
> +             if (likely(get_page_unless_zero(page))) {
> +                     /*
> +                      * Be careful not to clear PageLRU until after we're
> +                      * sure the page is not being freed elsewhere -- the
> +                      * page release code relies on it.
> +                      */
> +                     ClearPageLRU(page);
> +                     ret = 0;

Is that really necessary? PageLRU is clear when a page is freed right? 
And clearing PageLRU requires the zone->lru_lock since we have to move it 
off the LRU.

> -                     ClearPageLRU(page);
> -                     target = dst;
> +             active = PageActive(page);

Why are we saving the active state? Page cannot be moved between LRUs 
while we hold the lru lock anyways.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to