]> git.baikalelectronics.ru Git - kernel.git/commit
f2fs: support volatile operations for transient data
authorJaegeuk Kim <jaegeuk@kernel.org>
Mon, 6 Oct 2014 23:11:16 +0000 (16:11 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 7 Oct 2014 18:54:41 +0000 (11:54 -0700)
commit1cbfd707f1dba19eedfc33ce743090b365b915fd
treeedb3b2894dfb09f42cb45b6ad0f3d40c84a4dd7b
parentf22beace4e1987cfae015eea2fbee3fe96849361
f2fs: support volatile operations for transient data

This patch adds support for volatile writes which keep data pages in memory
until f2fs_evict_inode is called by iput.

For instance, we can use this feature for the sqlite database as follows.
While supporting atomic writes for main database file, we can keep its journal
data temporarily in the page cache by the following sequence.

1. open
 -> ioctl(F2FS_IOC_START_VOLATILE_WRITE);
2. writes
 : keep all the data in the page cache.
3. flush to the database file with atomic writes
  a. ioctl(F2FS_IOC_START_ATOMIC_WRITE);
  b. writes
  c. ioctl(F2FS_IOC_COMMIT_ATOMIC_WRITE);
4. close
 -> drop the cached data

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/inode.c