f2fs: obsolete ALLOC_NID_LIST list
As Fan Li reported, there is no user traversing nid_list[ALLOC_NID_LIST] which is used for tracking preallocated nids. Let's drop it, and only track preallocated nids in free_nid_root radix-tree. Reported-by: Fan Li <fanofcode.li@samsung.com> Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
+3
-12
@@ -150,18 +150,10 @@ struct nat_entry_set {
|
||||
unsigned int entry_cnt; /* the # of nat entries in set */
|
||||
};
|
||||
|
||||
/*
|
||||
* For free nid mangement
|
||||
*/
|
||||
enum nid_state {
|
||||
NID_NEW, /* newly added to free nid list */
|
||||
NID_ALLOC /* it is allocated */
|
||||
};
|
||||
|
||||
struct free_nid {
|
||||
struct list_head list; /* for free node id list */
|
||||
nid_t nid; /* node id */
|
||||
int state; /* in use or not: NID_NEW or NID_ALLOC */
|
||||
int state; /* in use or not: FREE_NID or PREALLOC_NID */
|
||||
};
|
||||
|
||||
static inline void next_free_nid(struct f2fs_sb_info *sbi, nid_t *nid)
|
||||
@@ -170,12 +162,11 @@ static inline void next_free_nid(struct f2fs_sb_info *sbi, nid_t *nid)
|
||||
struct free_nid *fnid;
|
||||
|
||||
spin_lock(&nm_i->nid_list_lock);
|
||||
if (nm_i->nid_cnt[FREE_NID_LIST] <= 0) {
|
||||
if (nm_i->nid_cnt[FREE_NID] <= 0) {
|
||||
spin_unlock(&nm_i->nid_list_lock);
|
||||
return;
|
||||
}
|
||||
fnid = list_first_entry(&nm_i->nid_list[FREE_NID_LIST],
|
||||
struct free_nid, list);
|
||||
fnid = list_first_entry(&nm_i->free_nid_list, struct free_nid, list);
|
||||
*nid = fnid->nid;
|
||||
spin_unlock(&nm_i->nid_list_lock);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user