Hi, 2013-02-02 (토), 23:51 +0900, Namjae Jeon: > From: Namjae Jeon <namjae.jeon@xxxxxxxxxxx> > > We can remove the call to find_get_page to get a page from the cache > and check for up-to-date, instead we can make use of grab_cache_page > part itself to fetch the page from the cache. > So, removing the call and moving the PageUptodate at proper place, also > taken care of moving the lock_page condition in the page_hit part. > > Signed-off-by: Namjae Jeon <namjae.jeon@xxxxxxxxxxx> > Signed-off-by: Amit Sahrawat <a.sahrawat@xxxxxxxxxxx> > --- > fs/f2fs/node.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c > index 33fa6d5..723185b 100644 > --- a/fs/f2fs/node.c > +++ b/fs/f2fs/node.c > @@ -920,15 +920,12 @@ struct page *get_node_page_ra(struct page *parent, int start) > if (!nid) > return ERR_PTR(-ENOENT); > > - page = find_get_page(mapping, nid); > - if (page && PageUptodate(page)) > - goto page_hit; > - f2fs_put_page(page, 0); > - The reason why we use this is to avoid the lock overhead. This is a readahead flow, and we don't need to care about real existence. Let's get and check the status of the page without any locks. Thanks, -- Jaegeuk Kim Samsung
Attachment:
signature.asc
Description: This is a digitally signed message part