alistair23-linux/fs/f2fs
Jaegeuk Kim 88b88a6679 f2fs: support atomic writes
This patch introduces a very limited functionality for atomic write support.
In order to support atomic write, this patch adds two ioctls:
 o F2FS_IOC_START_ATOMIC_WRITE
 o F2FS_IOC_COMMIT_ATOMIC_WRITE

The database engine should be aware of the following sequence.
1. open
 -> ioctl(F2FS_IOC_START_ATOMIC_WRITE);
2. writes
  : all the written data will be treated as atomic pages.
3. commit
 -> ioctl(F2FS_IOC_COMMIT_ATOMIC_WRITE);
  : this flushes all the data blocks to the disk, which will be shown all or
  nothing by f2fs recovery procedure.
4. repeat to #2.

The IO pattens should be:

  ,- START_ATOMIC_WRITE                  ,- COMMIT_ATOMIC_WRITE
 CP | D D D D D D | FSYNC | D D D D | FSYNC ...
                      `- COMMIT_ATOMIC_WRITE

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2014-10-06 17:39:50 -07:00
..
acl.c f2fs: remove the redundant validation check of acl 2014-07-09 14:04:25 -07:00
acl.h f2fs: use generic posix ACL infrastructure 2014-01-25 23:58:19 -05:00
checkpoint.c f2fs: check the use of macros on block counts and addresses 2014-09-30 15:34:47 -07:00
data.c f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
debug.c f2fs: check the use of macros on block counts and addresses 2014-09-30 15:34:47 -07:00
dir.c f2fs: expand counting dirty pages in the inode page cache 2014-09-16 04:10:39 -07:00
f2fs.h f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
file.c f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
gc.c f2fs: check the use of macros on block counts and addresses 2014-09-30 15:34:47 -07:00
gc.h f2fs: fix typo 2014-08-19 10:01:33 -07:00
hash.c f2fs: fix wrong casting for dentry name 2014-08-29 00:26:50 -07:00
inline.c f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
inode.c f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
Kconfig f2fs: fix typo 2014-08-19 10:01:33 -07:00
Makefile f2fs: key functions to handle inline data 2013-12-26 20:40:09 +09:00
namei.c f2fs: call f2fs_unlock_op after error was handled 2014-09-30 15:34:55 -07:00
node.c f2fs: refactor flush_nat_entries to remove costly reorganizing ops 2014-09-30 15:30:41 -07:00
node.h f2fs: remove unused return value 2014-10-05 21:05:15 -07:00
recovery.c f2fs: check the use of macros on block counts and addresses 2014-09-30 15:34:47 -07:00
segment.c f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
segment.h f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
super.c f2fs: support atomic writes 2014-10-06 17:39:50 -07:00
xattr.c f2fs: need fsck.f2fs when f2fs_bug_on is triggered 2014-09-09 13:15:02 -07:00
xattr.h f2fs: pass flags field to setxattr functions 2014-05-07 10:21:56 +09:00