On Thu, May 20, 2010 at 12:18 AM, Miao Xie <mi...@cn.fujitsu.com> wrote: > From: Liu Bo <liubo2...@cn.fujitsu.com> > > If add_to_page_cache_lru() returns -EEXIST, it indicates the page > that belongs to this page_index has been added and this readahead > action can go on to next page. > > If add_to_page_cache_lru() returns -ENOMEM, it should break for > no memory left. > > Signed-off-by: Liu Bo <liubo2...@cn.fujitsu.com> > Signed-off-by: Miao Xie <mi...@cn.fujitsu.com> > --- > fs/btrfs/compression.c | 19 ++++++++++++++++--- > 1 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c > index 1d54c53..1bd4d92 100644 > --- a/fs/btrfs/compression.c > +++ b/fs/btrfs/compression.c > @@ -480,10 +480,23 @@ static noinline int add_ra_bio_pages(struct inode > *inode, > if (!page) > break; > > - if (add_to_page_cache_lru(page, mapping, page_index, > - GFP_NOFS)) { > + ret = add_to_page_cache_lru(page, mapping, page_index, > + GFP_NOFS); > + if (ret) { > page_cache_release(page); > - goto next; > + > + /* > + * -EEXIST indicates the page has been added, so > + * it can move on to next page. > + */ > + if (ret == -EEXIST) { > + misses++; > + if (misses > 4) > + break;
Shouldn't this use a pre-processor label instead of hard coding compression sensitivity or readahead tuning? this way it'll be set in one place. > + goto next; > + } > + > + break; > } > > end = last_offset + PAGE_CACHE_SIZE - 1; > -- > 1.6.5.2 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >