RE: [f2fs-dev] [PATCH 1/2] f2fs: clean up the do_submit_bio flow

From: Jaegeuk Kim
Date: Tue Nov 19 2013 - 01:34:25 EST


Hi,

2013-11-19 (í), 13:25 +0800, Chao Yu:
> Hi
>
> > -----Original Message-----
> > From: Jaegeuk Kim [mailto:jaegeuk.kim@xxxxxxxxxxx]
> > Sent: Monday, November 18, 2013 5:12 PM
> > Cc: linux-fsdevel@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx
> > Subject: [f2fs-dev] [PATCH 1/2] f2fs: clean up the do_submit_bio flow
> >
> > This patch introduces PAGE_TYPE_OF_BIO() and cleans up do_submit_bio() with it.
> >
> > Signed-off-by: Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>
> > ---
> > fs/f2fs/f2fs.h | 1 +
> > fs/f2fs/segment.c | 39 +++++++++++++++++++++------------------
> > 2 files changed, 22 insertions(+), 18 deletions(-)
> >
> > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
> > index fe5c2fc..1c783fd 100644
> > --- a/fs/f2fs/f2fs.h
> > +++ b/fs/f2fs/f2fs.h
> > @@ -351,6 +351,7 @@ enum count_type {
> > * with waiting the bio's completion
> > * ... Only can be used with META.
> > */
> > +#define PAGE_TYPE_OF_BIO(type) (type) > META ? META : (type)


I'll add parenthesis as you suggested. Thanks.

> > enum page_type {
> > DATA,
> > NODE,
> > diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> > index 1f83999..dad5f1a 100644
> > --- a/fs/f2fs/segment.c
> > +++ b/fs/f2fs/segment.c
> > @@ -837,32 +837,35 @@ static void do_submit_bio(struct f2fs_sb_info *sbi,
> > enum page_type type, bool sync)
> > {
> > int rw = sync ? WRITE_SYNC : WRITE;
> > - enum page_type btype = type > META ? META : type;
> > + enum page_type btype = PAGE_TYPE_OF_BIO(type);
>
> ->f2fs_submit_bio()
> : enum page_type btype = PAGE_TYPE_OF_BIO(type);
> ->do_submit_bio()
> : enum page_type btype = PAGE_TYPE_OF_BIO(type);
>
> Could we remove PAGE_TYPE_OF_BIO or use f2fs_bug_on to instead
> in do_submit_bio()? because it looks redundant , and also
> submit_write_page() will not pass the type which is larger than META.

The f2fs_submit_bio(type) calls do_submit_bio(type) in which the type is
able to be META_FLUSH from sync_meta_pages().
So, we need to do this. :)

--
Jaegeuk Kim
Samsung

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