<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/f2fs/inode.c, branch linux-4.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-01-10T01:02:27Z</updated>
<entry>
<title>f2fs: get rid of kzalloc in __recover_inline_status</title>
<updated>2015-01-10T01:02:27Z</updated>
<author>
<name>Chao Yu</name>
</author>
<published>2015-01-06T06:28:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e5ba77fdbe3fea86b1e36903dd696b24b1c4607'/>
<id>urn:sha1:9e5ba77fdbe3fea86b1e36903dd696b24b1c4607</id>
<content type='text'>
We use kzalloc to allocate memory in __recover_inline_status, and use this
all-zero memory to check the inline date content of inode page by comparing
them. This is low effective and not needed, let's check inline date content
directly.

Signed-off-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
[Jaegeuk Kim: make the code more neat]
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: change atomic and volatile write policies</title>
<updated>2015-01-10T01:02:22Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-12-09T14:08:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1e84371ffeef451e8532e0cd04c2fe59ff10c514'/>
<id>urn:sha1:1e84371ffeef451e8532e0cd04c2fe59ff10c514</id>
<content type='text'>
This patch adds two new ioctls to release inmemory pages grabbed by atomic
writes.
 o f2fs_ioc_abort_volatile_write
  - If transaction was failed, all the grabbed pages and data should be written.
 o f2fs_ioc_release_volatile_write
  - This is to enhance the performance of PERSIST mode in sqlite.

In order to avoid huge memory consumption which causes OOM, this patch changes
volatile writes to use normal dirty pages, instead blocked flushing to the disk
as long as system does not suffer from memory pressure.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: count inline_xx in do_read_inode</title>
<updated>2014-12-08T18:35:13Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-12-05T18:51:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d1015dd4c6ba602272f80487bb9c922a9a71cc1'/>
<id>urn:sha1:9d1015dd4c6ba602272f80487bb9c922a9a71cc1</id>
<content type='text'>
In do_read_inode, if we failed __recover_inline_status, the inode has inline
flag without increasing its count.
Later, f2fs_evict_inode will decrease the count, which causes -1.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: revisit inline_data to avoid data races and potential bugs</title>
<updated>2014-11-05T01:34:11Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-10-24T02:48:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b3d208f96d6bb21247108a956dead6a028d5cdb2'/>
<id>urn:sha1:b3d208f96d6bb21247108a956dead6a028d5cdb2</id>
<content type='text'>
This patch simplifies the inline_data usage with the following rule.
1. inline_data is set during the file creation.
2. If new data is requested to be written ranges out of inline_data,
 f2fs converts that inode permanently.
3. There is no cases which converts non-inline_data inode to inline_data.
4. The inline_data flag should be changed under inode page lock.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: fix counting inline_data inode numbers</title>
<updated>2014-11-04T00:07:33Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-10-14T17:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7a2bf2283d368ada40ae52152b7ab2304a76d95'/>
<id>urn:sha1:e7a2bf2283d368ada40ae52152b7ab2304a76d95</id>
<content type='text'>
This patch fixes wrongly counting inline_data inode numbers.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: add stat info for inline_dentry inodes</title>
<updated>2014-11-04T00:07:33Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-10-14T03:00:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3289c061c5aaf914c6eb7bdfadb58a7fdd611d30'/>
<id>urn:sha1:3289c061c5aaf914c6eb7bdfadb58a7fdd611d30</id>
<content type='text'>
This patch adds status information for inline_dentry inodes.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: use highmem for directory pages</title>
<updated>2014-11-04T00:07:30Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-10-18T00:57:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a78186ebe516b6d7df43636603f0998803ab356a'/>
<id>urn:sha1:a78186ebe516b6d7df43636603f0998803ab356a</id>
<content type='text'>
This patch fixes to use highmem for directory pages.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: support volatile operations for transient data</title>
<updated>2014-10-07T18:54:41Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-10-06T23:11:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02a1335f25a386db9afc68f8315162f862aac93f'/>
<id>urn:sha1:02a1335f25a386db9afc68f8315162f862aac93f</id>
<content type='text'>
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
 -&gt; 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
 -&gt; drop the cached data

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: support atomic writes</title>
<updated>2014-10-07T00:39:50Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-10-07T00:39:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=88b88a66797159949cec32eaab12b4968f6fae2d'/>
<id>urn:sha1:88b88a66797159949cec32eaab12b4968f6fae2d</id>
<content type='text'>
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
 -&gt; ioctl(F2FS_IOC_START_ATOMIC_WRITE);
2. writes
  : all the written data will be treated as atomic pages.
3. commit
 -&gt; 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 &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: call f2fs_unlock_op after error was handled</title>
<updated>2014-09-30T22:34:55Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-09-25T18:55:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=44c16156512f33c81e382a1e1df9524e26a7026a'/>
<id>urn:sha1:44c16156512f33c81e382a1e1df9524e26a7026a</id>
<content type='text'>
This patch relocates f2fs_unlock_op in every directory operations to be called
after any error was processed.
Otherwise, the checkpoint can be entered with valid node ids without its
dentry when -ENOSPC is occurred.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
</feed>
