Hi Gu, > -----Original Message----- > From: Gu Zheng [mailto:guz.fnst@xxxxxxxxxxxxxx] > Sent: Friday, January 10, 2014 6:09 PM > To: Kim > Cc: fsdevel; linux-kernel; f2fs > Subject: [f2fs-dev] [PATCH 1/3] f2fs: move grabing orphan pages out of protection region > > Move grabing orphan block page out of protection region, and grab all > the orphan block pages ahead. > > Signed-off-by: Gu Zheng <guz.fnst@xxxxxxxxxxxxxx> Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx> > --- > fs/f2fs/checkpoint.c | 15 +++++++++------ > 1 files changed, 9 insertions(+), 6 deletions(-) > > diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c > index 0d78bbe..af92c74 100644 > --- a/fs/f2fs/checkpoint.c > +++ b/fs/f2fs/checkpoint.c > @@ -303,22 +303,25 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t > start_blk) > { > struct list_head *head; > struct f2fs_orphan_block *orphan_blk = NULL; > - struct page *page = NULL; > unsigned int nentries = 0; > - unsigned short index = 1; > - unsigned short orphan_blocks; > + unsigned short index; > + unsigned short orphan_blocks = (unsigned short)((sbi->n_orphans + > + (F2FS_ORPHANS_PER_BLOCK - 1)) / F2FS_ORPHANS_PER_BLOCK); > + struct page *page = NULL; > + struct page *pages[orphan_blocks]; > struct orphan_inode_entry *orphan = NULL; > > - orphan_blocks = (unsigned short)((sbi->n_orphans + > - (F2FS_ORPHANS_PER_BLOCK - 1)) / F2FS_ORPHANS_PER_BLOCK); > + for (index = 0; index < orphan_blocks; index++) > + pages[index] = grab_meta_page(sbi, start_blk + index); > > + index = 1; > mutex_lock(&sbi->orphan_inode_mutex); > head = &sbi->orphan_inode_list; > > /* loop for each orphan inode entry and write them in Jornal block */ > list_for_each_entry(orphan, head, list) { > if (!page) { > - page = grab_meta_page(sbi, start_blk); > + page = pages[index - 1]; > orphan_blk = > (struct f2fs_orphan_block *)page_address(page); > memset(orphan_blk, 0, sizeof(*orphan_blk)); It seems that we could remove the following code in write_orphan_inodes. start_blk++; > -- > 1.7.7 > > > ------------------------------------------------------------------------------ > CenturyLink Cloud: The Leader in Enterprise Cloud Services. > Learn Why More Businesses Are Choosing CenturyLink Cloud For > Critical Workloads, Development Environments & Everything In Between. > Get a Quote or Start a Free Trial Today. > http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html