diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-10-06 16:11:16 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-10-07 11:54:41 -0700 |
commit | 02a1335f25a386db9afc68f8315162f862aac93f (patch) | |
tree | edb3b2894dfb09f42cb45b6ad0f3d40c84a4dd7b /fs/f2fs/data.c | |
parent | 88b88a66797159949cec32eaab12b4968f6fae2d (diff) | |
download | blackbird-op-linux-02a1335f25a386db9afc68f8315162f862aac93f.tar.gz blackbird-op-linux-02a1335f25a386db9afc68f8315162f862aac93f.zip |
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>
Diffstat (limited to 'fs/f2fs/data.c')
-rw-r--r-- | fs/f2fs/data.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 8bbd60633f37..8e58c4cc2cb9 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1052,7 +1052,7 @@ static int f2fs_write_end(struct file *file, trace_f2fs_write_end(inode, pos, len, copied); - if (f2fs_is_atomic_file(inode)) + if (f2fs_is_atomic_file(inode) || f2fs_is_volatile_file(inode)) register_inmem_page(inode, page); else set_page_dirty(page); |