<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/f2fs/file.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-02-13T03:28:50Z</updated>
<entry>
<title>Merge tag 'for-f2fs-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs</title>
<updated>2015-02-13T03:28:50Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2015-02-13T03:28:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c7d7b98671552abade78834c522b7308bda73c0d'/>
<id>urn:sha1:c7d7b98671552abade78834c522b7308bda73c0d</id>
<content type='text'>
Pull f2fs updates from Jaegeuk Kim:
 "Major changes are to:
   - add f2fs_io_tracer and F2FS_IOC_GETVERSION
   - fix wrong acl assignment from parent
   - fix accessing wrong data blocks
   - fix wrong condition check for f2fs_sync_fs
   - align start block address for direct_io
   - add and refactor the readahead flows of FS metadata
   - refactor atomic and volatile write policies

  But most of patches are for clean-ups and minor bug fixes.  Some of
  them refactor old code too"

* tag 'for-f2fs-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (64 commits)
  f2fs: use spinlock for segmap_lock instead of rwlock
  f2fs: fix accessing wrong indexed data blocks
  f2fs: avoid variable length array
  f2fs: fix sparse warnings
  f2fs: allocate data blocks in advance for f2fs_direct_IO
  f2fs: introduce macros to convert bytes and blocks in f2fs
  f2fs: call set_buffer_new for get_block
  f2fs: check node page contents all the time
  f2fs: avoid data offset overflow when lseeking huge file
  f2fs: fix to use highmem for pages of newly created directory
  f2fs: introduce a batched trim
  f2fs: merge {invalidate,release}page for meta/node/data pages
  f2fs: show the number of writeback pages in stat
  f2fs: keep PagePrivate during releasepage
  f2fs: should fail mount when trying to recover data on read-only dev
  f2fs: split UMOUNT and FASTBOOT flags
  f2fs: avoid write_checkpoint if f2fs is mounted readonly
  f2fs: support norecovery mount option
  f2fs: fix not to drop mount options when retrying fill_super
  f2fs: merge flags in struct f2fs_sb_info
  ...
</content>
</entry>
<entry>
<title>f2fs: introduce macros to convert bytes and blocks in f2fs</title>
<updated>2015-02-12T01:04:48Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2015-02-09T20:02:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f7ef9b83b583640111039b30e13263b71c3a6ed5'/>
<id>urn:sha1:f7ef9b83b583640111039b30e13263b71c3a6ed5</id>
<content type='text'>
This patch adds two macros for transition between byte and block offsets.
Currently, f2fs only supports 4KB blocks, so use the default size for now.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: avoid data offset overflow when lseeking huge file</title>
<updated>2015-02-12T01:04:46Z</updated>
<author>
<name>Chao Yu</name>
</author>
<published>2015-02-09T03:23:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e023174a88dd14eab30fae3a1f6c97f37eb3bb8'/>
<id>urn:sha1:2e023174a88dd14eab30fae3a1f6c97f37eb3bb8</id>
<content type='text'>
xfstest generic/285 complains our issue in lseeking huge file.

Here is the detail output of generic/285:
"./check -f2fs tests/generic/285
Ran: generic/285
Failures: generic/285
Failed 1 of 1 tests

10. Test a huge file for offset overflow
10.01 SEEK_HOLE expected 65536 or 8589934592, got 65536.          succ
10.02 SEEK_HOLE expected 65536 or 8589934592, got 65536.          succ
10.03 SEEK_DATA expected 0 or 0, got 0.                           succ
10.04 SEEK_DATA expected 1 or 1, got 1.                           succ
10.05 SEEK_HOLE expected 8589934592 or 8589934592, got 0.         FAIL
10.06 SEEK_DATA expected 8589869056 or 8589869056, got 8589869056. succ
10.07 SEEK_DATA expected 8589869057 or 8589869057, got 8589869057. succ
10.08 SEEK_DATA expected 8589869056 or 8589869056, got 4294901760. FAIL"

The reason of this issue is:
We will calculate current offset through left shifting page-offset with
PAGE_CACHE_SHIFT bits, but our page-offset is a type of unsigned long, its size
is 4 bytes in 32-bits machine.

So if our page-offset is bigger than (1 &lt;&lt; 32 / pagesize - 1), result of left
shifting will overflow.

Let's fix this issue by casting type of page-offset to type of current offset:
loff_t.

Signed-off-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: add F2FS_IOC_GETVERSION support</title>
<updated>2015-02-12T01:04:35Z</updated>
<author>
<name>Chao Yu</name>
</author>
<published>2015-01-23T12:36:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d49f3e890290bd1db047d02335401026d1886472'/>
<id>urn:sha1:d49f3e890290bd1db047d02335401026d1886472</id>
<content type='text'>
In this patch we add the FS_IOC_GETVERSION ioctl for getting i_generation from
inode, after that, users can list file's generation number by using "lsattr -v".

Signed-off-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: avoid infinite loop on cp_error</title>
<updated>2015-02-12T01:04:30Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2015-01-10T00:27:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=871f599f4a869d24ef98b0217f19f0cc55ff59ac'/>
<id>urn:sha1:871f599f4a869d24ef98b0217f19f0cc55ff59ac</id>
<content type='text'>
If cp_error is set, we should avoid all the infinite loop.
In f2fs_sync_file, there is a hole, and this patch fixes that.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>mm: drop vm_ops-&gt;remap_pages and generic_file_remap_pages() stub</title>
<updated>2015-02-10T22:30:30Z</updated>
<author>
<name>Kirill A. Shutemov</name>
</author>
<published>2015-02-10T22:09:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d83a08db5ba6072caa658745881f4baa9bad6a08'/>
<id>urn:sha1:d83a08db5ba6072caa658745881f4baa9bad6a08</id>
<content type='text'>
Nobody uses it anymore.

[akpm@linux-foundation.org: fix filemap_xip.c]
Signed-off-by: Kirill A. Shutemov &lt;kirill.shutemov@linux.intel.com&gt;
Cc: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>f2fs: clean up to remove parameter</title>
<updated>2015-01-10T01:02:26Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-12-31T06:57:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e1509cf294cc670cda1fedd430f0ff175c42b591'/>
<id>urn:sha1:e1509cf294cc670cda1fedd430f0ff175c42b591</id>
<content type='text'>
This patch uses dn-&gt;data_blkaddr as a parameter for the destination block
address.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
<entry>
<title>f2fs: activate f2fs_trace_ios</title>
<updated>2015-01-10T01:02:24Z</updated>
<author>
<name>Jaegeuk Kim</name>
</author>
<published>2014-12-18T04:04:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=db9f7c1a9561e998d6227bcc1c19bc4c1fbbca1b'/>
<id>urn:sha1:db9f7c1a9561e998d6227bcc1c19bc4c1fbbca1b</id>
<content type='text'>
This patch activates f2fs_trace_ios.

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: cleanup path to need cp at fsync</title>
<updated>2014-12-08T18:40:22Z</updated>
<author>
<name>Changman Lee</name>
</author>
<published>2014-12-08T06:29:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=51455b19384d26afac4f214fab2ad0a4f1964e30'/>
<id>urn:sha1:51455b19384d26afac4f214fab2ad0a4f1964e30</id>
<content type='text'>
Added some commentaries for code readability and cleaned up if-statement
clearly.

Signed-off-by: Changman Lee &lt;cm224.lee@samsung.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
</entry>
</feed>
