kernel-hacking-2024-linux-s.../fs/f2fs
Chao Yu 7d768d2c26 f2fs: flush dirty nat entries when exceeding threshold
When testing f2fs with xfstest, generic/251 is stuck for long time,
the case uses below serials to obtain fresh released space in device,
in order to prepare for following fstrim test.

1. rm -rf /mnt/dir
2. mkdir /mnt/dir/
3. cp -axT `pwd`/ /mnt/dir/
4. goto 1

During preparing step, all nat entries will be cached in nat cache,
most of them are dirty entries with invalid blkaddr, which means
nodes related to these entries have been truncated, and they could
be reused after the dirty entries been checkpointed.

However, there was no checkpoint been triggered, so nid allocators
(e.g. mkdir, creat) will run into long journey of iterating all NAT
pages, looking for free nids in alloc_nid->build_free_nids.

Here, in f2fs_balance_fs_bg we give another chance to do checkpoint
to flush nat entries for reusing them in free nid cache when dirty
entry count exceeds 10% of max count.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-02-22 16:07:23 -08:00
..
acl.c
acl.h
checkpoint.c f2fs: introduce time and interval facility 2016-01-11 15:36:27 -08:00
crypto.c
crypto_fname.c
crypto_key.c KEYS: Merge the type-specific data with the payload data 2015-10-21 15:18:36 +01:00
crypto_policy.c
data.c f2fs: relocate is_merged_page 2016-02-22 16:07:23 -08:00
debug.c Merge tag 'for-f2fs-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs 2016-01-13 21:01:44 -08:00
dir.c f2fs: detect idle time depending on user behavior 2016-01-11 15:56:37 -08:00
extent_cache.c f2fs: skip releasing nodes in chindless extent tree 2016-01-08 11:57:18 -08:00
f2fs.h f2fs: relocate is_merged_page 2016-02-22 16:07:23 -08:00
f2fs_crypto.h
file.c wrappers for ->i_mutex access 2016-01-22 18:04:28 -05:00
gc.c f2fs: detect idle time depending on user behavior 2016-01-11 15:56:37 -08:00
gc.h f2fs: detect idle time depending on user behavior 2016-01-11 15:56:37 -08:00
hash.c
inline.c f2fs: clean up f2fs_balance_fs 2016-01-08 11:45:23 -08:00
inode.c Merge tag 'for-f2fs-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs 2016-01-13 21:01:44 -08:00
Kconfig f2fs: fix typo 2015-08-21 22:43:32 -07:00
Makefile f2fs: maintain extent cache in separated file 2015-08-04 14:09:58 -07:00
namei.c Merge tag 'for-f2fs-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs 2016-01-13 21:01:44 -08:00
node.c f2fs: fix wrong memory condition check 2016-01-11 15:56:43 -08:00
node.h f2fs: flush dirty nat entries when exceeding threshold 2016-02-22 16:07:23 -08:00
recovery.c f2fs: report error of do_checkpoint 2015-12-30 10:14:09 -08:00
segment.c f2fs: flush dirty nat entries when exceeding threshold 2016-02-22 16:07:23 -08:00
segment.h Revert "f2fs: do not skip dentry block writes" 2015-10-12 13:38:02 -07:00
shrinker.c f2fs: speed up shrinking extent tree entries 2015-12-30 10:13:00 -08:00
super.c kmemcg: account certain kmem allocations to memcg 2016-01-14 16:00:49 -08:00
trace.c
trace.h
xattr.c Merge tag 'for-f2fs-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs 2016-01-13 21:01:44 -08:00
xattr.h vfs: Distinguish between full xattr names and proper prefixes 2015-12-06 21:33:52 -05:00