diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-12-03 21:15:10 -0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-12-03 21:23:29 -0800 |
commit | 8b26ef98da3387eb57a8a5c1747c6e628948ee0c (patch) | |
tree | 3a36e9ee3b1483c049a91e32f7eda6e54f71e0fc /fs/f2fs/f2fs.h | |
parent | 4634d71ed190c99e42ebee450f9a6897d20ee22c (diff) | |
download | op-kernel-dev-8b26ef98da3387eb57a8a5c1747c6e628948ee0c.zip op-kernel-dev-8b26ef98da3387eb57a8a5c1747c6e628948ee0c.tar.gz |
f2fs: use rw_semaphore for nat entry lock
Previoulsy, we used rwlock for nat_entry lock.
But, now we have a lot of complex operations in set_node_addr.
(e.g., allocating kernel memories, handling radix_trees, and so on)
So, this patches tries to change spinlock to rw_semaphore to give CPUs to other
threads.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/f2fs.h')
-rw-r--r-- | fs/f2fs/f2fs.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index d042813..c873140 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -332,7 +332,7 @@ struct f2fs_nm_info { /* NAT cache management */ struct radix_tree_root nat_root;/* root of the nat entry cache */ struct radix_tree_root nat_set_root;/* root of the nat set cache */ - rwlock_t nat_tree_lock; /* protect nat_tree_lock */ + struct rw_semaphore nat_tree_lock; /* protect nat_tree_lock */ struct list_head nat_entries; /* cached nat entry list (clean) */ unsigned int nat_cnt; /* the # of cached nat entries */ unsigned int dirty_nat_cnt; /* total num of nat entries in set */ |