Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[f2fs-dev][PATCH 1/3] f2fs: move grabing orphan pages out of protection region

0 views
Skip to first unread message

Gu Zheng

unread,
Jan 10, 2014, 5:20:02 AM1/10/14
to
Move grabing orphan block page out of protection region, and grab all
the orphan block pages ahead.

Signed-off-by: Gu Zheng <guz....@cn.fujitsu.com>
---
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));
--
1.7.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Chao Yu

unread,
Jan 10, 2014, 8:30:02 PM1/10/14
to
Hi Gu,

> -----Original Message-----
> From: Gu Zheng [mailto:guz....@cn.fujitsu.com]
> 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....@cn.fujitsu.com>

Reviewed-by: Chao Yu <chao...@samsung.com>
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-f2...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Gu Zheng

unread,
Jan 13, 2014, 4:50:01 AM1/13/14
to
Hi Yu,
Yes, you're right, thanks for your review.

Regards,
Gu

Gu Zheng

unread,
Jan 13, 2014, 5:00:02 AM1/13/14
to
Move grabbing orphan block page out of protection region, and grab all
the orphan block pages ahead.

v2:
Remove the redundant code as Chao Yu suggested.

Reviewed-by: Chao Yu <chao...@samsung.com>
Signed-off-by: Gu Zheng <guz....@cn.fujitsu.com>
---
fs/f2fs/checkpoint.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 0d78bbe..fdc5a12 100644
@@ -338,7 +341,6 @@ static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk)
set_page_dirty(page);
f2fs_put_page(page, 1);
index++;
- start_blk++;
nentries = 0;
page = NULL;
0 new messages