f2fs: fix wrong number of max_nid when init
Subsystems (2)
PATCH 1/1 f2fs: fix wrong number of max_nid when init
Since max_nid value was minus three in previous commit:
'b63da15e8b475245026bdf2096853683f189706b', Our last three nids could not be used ever, but 0/node nid/meta nid is still occupied.
And also our ra_meta_pages() could not readahead the last block of NAT. Let's fix the wrong calculation of this value, and left the reserved nids there.
--- fs/f2fs/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
fs/f2fs/node.c +1 -1
@@ -1860,7 +1860,7 @@ static int init_node_manager(struct f2fs_sb_info *sbi) nat_blocks = nat_segs <<le32_to_cpu (sb_raw->log_blocks_per_seg);/* not used nids: 0, node, meta, (and root counted as valid node) */ - nm_i->max_nid =NAT_ENTRY_PER_BLOCK * nat_blocks -3 ; + nm_i->max_nid =NAT_ENTRY_PER_BLOCK * nat_blocks; nm_i->fcnt =0 ; nm_i->nat_cnt =0 ; nm_i->ram_thresh =DEF_RAM_THRESHOLD ;
Signature · 1 line
1.7.9.5
Hi,
2014-04-17 (목), 14:27 +0800, Chao Yu:
Quoted 4 lines
Since
max_nidvalue was minus three in previous commit:
'b63da15e8b475245026bdf2096853683f189706b', Our last three nids could not be used ever, but 0/node nid/meta nid is still occupied.
And also ourra_meta_pages()could not readahead the last block of NAT.
What is the root problem in there?
IIRC, the max_nid should not be turned back since that can cause an infinite loop during build_free_nids() under a test using whole the nids.
Quoted 20 lines
Let's fix the wrong calculation of this value, and left the reserved nids there.
Signed-off-by Chao Yu <[email protected]>--- fs/f2fs/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)fs/f2fs/node.c +1
-1@@ -1860,7 +1860,7 @@ static int init_node_manager(struct f2fs_sb_info *sbi) nat_blocks = nat_segs <<le32_to_cpu (sb_raw->log_blocks_per_seg);/* not used nids: 0, node, meta, (and root counted as valid node) */ - nm_i->max_nid =NAT_ENTRY_PER_BLOCK * nat_blocks -3 ; + nm_i->max_nid =NAT_ENTRY_PER_BLOCK * nat_blocks; nm_i->fcnt =0 ; nm_i->nat_cnt =0 ; nm_i->ram_thresh =DEF_RAM_THRESHOLD ;
Signature · 15 lines
Jaegeuk Kim Samsung ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
Hi,
Quoted 10 lines
-----Original Message-----
From: Jaegeuk Kim [mailto:[email protected]]
Sent: Thursday, April 17, 2014 3:17 PM
To: Chao Yu
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: [f2fs-dev] [PATCH] f2fs: fix wrong number ofmax_nidwhen initHi,
Quoted 7 lines
2014-04-17 (목), 14:27 +0800, Chao Yu:
Quoted 4 lines
Since
max_nidvalue was minus three in previous commit:
'b63da15e8b475245026bdf2096853683f189706b', Our last three nids could not be used ever, but 0/node nid/meta nid is still occupied.
And also ourra_meta_pages()could not readahead the last block of NAT.What is the root problem in there?
The last one is the root problem, I will submit another patch to fix it.
Quoted 3 lines
IIRC, the
max_nidshould not be turned back since that can cause an infinite loop duringbuild_free_nids()under a test using whole the nids.
Got it, thanks for your explanation.
Regards.
Quoted 15 lines
Quoted 15 lines
Let's fix the wrong calculation of this value, and left the reserved nids there.
Signed-off-by Chao Yu <[email protected]>--- fs/f2fs/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)fs/f2fs/node.c +0
-0@@ -1860,7 +1860,7 @@ static int init_node_manager(struct f2fs_sb_info *sbi) nat_blocks = nat_segs <<le32_to_cpu (sb_raw->log_blocks_per_seg);
Quoted 10 lines
fs/f2fs/node.c static int init_node_manager(struct f2fs_sb_info *sbi) · line 1866
Quoted 6 lines
fs/f2fs/node.c +1
-1/* not used nids: 0, node, meta, (and root counted as valid node) */ - nm_i->max_nid =NAT_ENTRY_PER_BLOCK * nat_blocks -3 ; + nm_i->max_nid =NAT_ENTRY_PER_BLOCK * nat_blocks; nm_i->fcnt =0 ; nm_i->nat_cnt =0 ; nm_i->ram_thresh =DEF_RAM_THRESHOLD ;--
Jaegeuk Kim
Samsung
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
Linux-f2fs-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel