f2fs: disable the extent cache ops on high fragmented files
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Tue, 19 Nov 2013 01:41:54 +0000 (10:41 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Mon, 23 Dec 2013 01:18:01 +0000 (10:18 +0900)
commitc11abd1a8075e428ecf5303359513b48193b29cd
tree71201566a736bec313d4123e1891c6e06327fec3
parent971767caf632190f77a40b4011c19948232eed75
f2fs: disable the extent cache ops on high fragmented files

The f2fs manages an extent cache to search a number of consecutive data blocks
very quickly.

However it conducts unnecessary cache operations if the file is highly
fragmented with no valid extent cache.

In such the case, we don't need to handle the extent cache, but just can disable
the cache facility.

Nevertheless, this patch gives one more chance to enable the extent cache.

For example,
1. create a file
2. write data sequentially which produces a large valid extent cache
3. update some data, resulting in a fragmented extent
4. if the fragmented extent is too small, then drop extent cache
5. close the file

6. open the file again
7. give another chance to make a new extent cache
8. write data sequentially again which creates another big extent cache.
...

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/data.c
fs/f2fs/f2fs.h