Re: [PATCH 06/33] readahead: refactor __do_page_cache_readahead()

Paul Mackerras
2006-05-25T22:33:26Z

Andrew Morton writes:

> Wu Fengguang <wfg@mail.ustc.edu.cn> wrote:
> > @@ -302,6 +303,8 @@ __do_page_cache_readahead(struct address
> > break;
> > page->index = page_offset;
> > list_add(&page->lru, &page_pool);
> > + if (page_idx == nr_to_read - lookahead_size)
> > + __SetPageReadahead(page);
> > ret++;
> > }
>
> OK. But the __SetPageFoo() things still give me the creeps.

I just hope that Wu Fengguang, or whoever is making these patches,
realizes that on some architectures, doing __set_bit on one CPU
concurrently with another CPU doing set_bit on a different bit in the
same word can result in the second CPU's update getting lost...

Paul.