<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/fs/f2fs/data.c, branch v4.7</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Merge tag 'for-f2fs-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs</title>
<updated>2016-05-22T01:25:28+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2016-05-22T01:25:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f6c658df63856db3bf8f467024b1dbee37b5399c'/>
<id>f6c658df63856db3bf8f467024b1dbee37b5399c</id>
<content type='text'>
Pull f2fs updates from Jaegeuk Kim:
 "In this round, as Ted pointed out, fscrypto allows one more key prefix
  given by filesystem to resolve backward compatibility issues.  Other
  than that, we've fixed several error handling cases by introducing
  a fault injection facility.  We've also achieved performance
  improvement in some workloads as well as a bunch of bug fixes.

  Summary:

  Enhancements:
   - fs-specific prefix for fscrypto
   - fault injection facility
   - expose validity bitmaps for user to be aware of fragmentation
   - fallocate/rm/preallocation speed up
   - use percpu counters

  Bug fixes:
   - some inline_dentry/inline_data bugs
   - error handling for atomic/volatile/orphan inodes
   - recover broken superblock"

* tag 'for-f2fs-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (73 commits)
  f2fs: fix to update dirty page count correctly
  f2fs: flush pending bios right away when error occurs
  f2fs: avoid ENOSPC fault in the recovery process
  f2fs: make exit_f2fs_fs more clear
  f2fs: use percpu_counter for total_valid_inode_count
  f2fs: use percpu_counter for alloc_valid_block_count
  f2fs: use percpu_counter for # of dirty pages in inode
  f2fs: use percpu_counter for page counters
  f2fs: use bio count instead of F2FS_WRITEBACK page count
  f2fs: manipulate dirty file inodes when DATA_FLUSH is set
  f2fs: add fault injection to sysfs
  f2fs: no need inc dirty pages under inode lock
  f2fs: fix incorrect error path handling in f2fs_move_rehashed_dirents
  f2fs: fix i_current_depth during inline dentry conversion
  f2fs: correct return value type of f2fs_fill_super
  f2fs: fix deadlock when flush inline data
  f2fs: avoid f2fs_bug_on during recovery
  f2fs: show # of orphan inodes
  f2fs: support in batch fzero in dnode page
  f2fs: support in batch multi blocks preallocation
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull f2fs updates from Jaegeuk Kim:
 "In this round, as Ted pointed out, fscrypto allows one more key prefix
  given by filesystem to resolve backward compatibility issues.  Other
  than that, we've fixed several error handling cases by introducing
  a fault injection facility.  We've also achieved performance
  improvement in some workloads as well as a bunch of bug fixes.

  Summary:

  Enhancements:
   - fs-specific prefix for fscrypto
   - fault injection facility
   - expose validity bitmaps for user to be aware of fragmentation
   - fallocate/rm/preallocation speed up
   - use percpu counters

  Bug fixes:
   - some inline_dentry/inline_data bugs
   - error handling for atomic/volatile/orphan inodes
   - recover broken superblock"

* tag 'for-f2fs-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (73 commits)
  f2fs: fix to update dirty page count correctly
  f2fs: flush pending bios right away when error occurs
  f2fs: avoid ENOSPC fault in the recovery process
  f2fs: make exit_f2fs_fs more clear
  f2fs: use percpu_counter for total_valid_inode_count
  f2fs: use percpu_counter for alloc_valid_block_count
  f2fs: use percpu_counter for # of dirty pages in inode
  f2fs: use percpu_counter for page counters
  f2fs: use bio count instead of F2FS_WRITEBACK page count
  f2fs: manipulate dirty file inodes when DATA_FLUSH is set
  f2fs: add fault injection to sysfs
  f2fs: no need inc dirty pages under inode lock
  f2fs: fix incorrect error path handling in f2fs_move_rehashed_dirents
  f2fs: fix i_current_depth during inline dentry conversion
  f2fs: correct return value type of f2fs_fill_super
  f2fs: fix deadlock when flush inline data
  f2fs: avoid f2fs_bug_on during recovery
  f2fs: show # of orphan inodes
  f2fs: support in batch fzero in dnode page
  f2fs: support in batch multi blocks preallocation
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>f2fs: flush pending bios right away when error occurs</title>
<updated>2016-05-20T18:46:15+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk@kernel.org</email>
</author>
<published>2016-05-18T21:07:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=38f91ca8c0ea69f707c26f592dcc70f937088bcc'/>
<id>38f91ca8c0ea69f707c26f592dcc70f937088bcc</id>
<content type='text'>
Given errors, this patch flushes pending bios as soon as possible.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Given errors, this patch flushes pending bios as soon as possible.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>f2fs: use bio count instead of F2FS_WRITEBACK page count</title>
<updated>2016-05-18T20:57:25+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk@kernel.org</email>
</author>
<published>2016-05-17T23:23:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f573018491fd823e909d587cfe16758f3dd9e6d6'/>
<id>f573018491fd823e909d587cfe16758f3dd9e6d6</id>
<content type='text'>
This can reduce page counting overhead.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This can reduce page counting overhead.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2016-05-17T22:05:23+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2016-05-17T22:05:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c2e7b207058d4ff6a9010430763fb561f307eb67'/>
<id>c2e7b207058d4ff6a9010430763fb561f307eb67</id>
<content type='text'>
Pull vfs cleanups from Al Viro:
 "More cleanups from Christoph"

* 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  nfsd: use RWF_SYNC
  fs: add RWF_DSYNC aand RWF_SYNC
  ceph: use generic_write_sync
  fs: simplify the generic_write_sync prototype
  fs: add IOCB_SYNC and IOCB_DSYNC
  direct-io: remove the offset argument to dio_complete
  direct-io: eliminate the offset argument to -&gt;direct_IO
  xfs: eliminate the pos variable in xfs_file_dio_aio_write
  filemap: remove the pos argument to generic_file_direct_write
  filemap: remove pos variables in generic_file_read_iter
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull vfs cleanups from Al Viro:
 "More cleanups from Christoph"

* 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  nfsd: use RWF_SYNC
  fs: add RWF_DSYNC aand RWF_SYNC
  ceph: use generic_write_sync
  fs: simplify the generic_write_sync prototype
  fs: add IOCB_SYNC and IOCB_DSYNC
  direct-io: remove the offset argument to dio_complete
  direct-io: eliminate the offset argument to -&gt;direct_IO
  xfs: eliminate the pos variable in xfs_file_dio_aio_write
  filemap: remove the pos argument to generic_file_direct_write
  filemap: remove pos variables in generic_file_read_iter
</pre>
</div>
</content>
</entry>
<entry>
<title>f2fs: fix deadlock when flush inline data</title>
<updated>2016-05-11T16:56:38+00:00</updated>
<author>
<name>Chao Yu</name>
<email>yuchao0@huawei.com</email>
</author>
<published>2016-05-11T11:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ab47036d8f7227361cad7894adee8e66ab6f95b2'/>
<id>ab47036d8f7227361cad7894adee8e66ab6f95b2</id>
<content type='text'>
Below backtrace info was reported by Yunlei He:

Call Trace:
 [&lt;ffffffff817a9395&gt;] schedule+0x35/0x80
 [&lt;ffffffff817abb7d&gt;] rwsem_down_read_failed+0xed/0x130
 [&lt;ffffffff813c12a8&gt;] call_rwsem_down_read_failed+0x18/0x
 [&lt;ffffffff817ab1d0&gt;] down_read+0x20/0x30
 [&lt;ffffffffa02a1a12&gt;] f2fs_evict_inode+0x242/0x3a0 [f2fs]
 [&lt;ffffffff81217057&gt;] evict+0xc7/0x1a0
 [&lt;ffffffff81217cd6&gt;] iput+0x196/0x200
 [&lt;ffffffff812134f9&gt;] __dentry_kill+0x179/0x1e0
 [&lt;ffffffff812136f9&gt;] dput+0x199/0x1f0
 [&lt;ffffffff811fe77b&gt;] __fput+0x18b/0x220
 [&lt;ffffffff811fe84e&gt;] ____fput+0xe/0x10
 [&lt;ffffffff81097427&gt;] task_work_run+0x77/0x90
 [&lt;ffffffff81074d62&gt;] exit_to_usermode_loop+0x73/0xa2
 [&lt;ffffffff81003b7a&gt;] do_syscall_64+0xfa/0x110
 [&lt;ffffffff817acf65&gt;] entry_SYSCALL64_slow_path+0x25/0x25

Call Trace:
 [&lt;ffffffff817a9395&gt;] schedule+0x35/0x80
 [&lt;ffffffff81216dc3&gt;] __wait_on_freeing_inode+0xa3/0xd0
 [&lt;ffffffff810bc300&gt;] ? autoremove_wake_function+0x40/0x4
 [&lt;ffffffff8121771d&gt;] find_inode_fast+0x7d/0xb0
 [&lt;ffffffff8121794a&gt;] ilookup+0x6a/0xd0
 [&lt;ffffffffa02bc740&gt;] sync_node_pages+0x210/0x650 [f2fs]
 [&lt;ffffffff8122e690&gt;] ? do_fsync+0x70/0x70
 [&lt;ffffffffa02b085e&gt;] block_operations+0x9e/0xf0 [f2fs]
 [&lt;ffffffff8137b795&gt;] ? bio_endio+0x55/0x60
 [&lt;ffffffffa02b0942&gt;] write_checkpoint+0x92/0xba0 [f2fs]
 [&lt;ffffffff8117da57&gt;] ? mempool_free_slab+0x17/0x20
 [&lt;ffffffff8117de8b&gt;] ? mempool_free+0x2b/0x80
 [&lt;ffffffff8122e690&gt;] ? do_fsync+0x70/0x70
 [&lt;ffffffffa02a53e3&gt;] f2fs_sync_fs+0x63/0xd0 [f2fs]
 [&lt;ffffffff8129630f&gt;] ? ext4_sync_fs+0xbf/0x190
 [&lt;ffffffff8122e6b0&gt;] sync_fs_one_sb+0x20/0x30
 [&lt;ffffffff812002e9&gt;] iterate_supers+0xb9/0x110
 [&lt;ffffffff8122e7b5&gt;] sys_sync+0x55/0x90
 [&lt;ffffffff81003ae9&gt;] do_syscall_64+0x69/0x110
 [&lt;ffffffff817acf65&gt;] entry_SYSCALL64_slow_path+0x25/0x25

With following excuting serials, we will set inline_node in inode page
after inode was unlinked, result in a deadloop described as below:
1. open file
2. write file
3. unlink file
4. write file
5. close file

Thread A				Thread B
 - dput
  - iput_final
   - inode-&gt;i_state |= I_FREEING
   - evict
    - f2fs_evict_inode
					 - f2fs_sync_fs
					  - write_checkpoint
					   - block_operations
					    - f2fs_lock_all (down_write(cp_rwsem))
     - f2fs_lock_op (down_read(cp_rwsem))
					    - sync_node_pages
					     - ilookup
					      - find_inode_fast
					       - __wait_on_freeing_inode
					         (wait on I_FREEING clear)

Here, we change to set inline_node flag only for linked inode for fixing.

Reported-by: Yunlei He &lt;heyunlei@huawei.com&gt;
Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
Tested-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
Cc: stable@vger.kernel.org # v4.6
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Below backtrace info was reported by Yunlei He:

Call Trace:
 [&lt;ffffffff817a9395&gt;] schedule+0x35/0x80
 [&lt;ffffffff817abb7d&gt;] rwsem_down_read_failed+0xed/0x130
 [&lt;ffffffff813c12a8&gt;] call_rwsem_down_read_failed+0x18/0x
 [&lt;ffffffff817ab1d0&gt;] down_read+0x20/0x30
 [&lt;ffffffffa02a1a12&gt;] f2fs_evict_inode+0x242/0x3a0 [f2fs]
 [&lt;ffffffff81217057&gt;] evict+0xc7/0x1a0
 [&lt;ffffffff81217cd6&gt;] iput+0x196/0x200
 [&lt;ffffffff812134f9&gt;] __dentry_kill+0x179/0x1e0
 [&lt;ffffffff812136f9&gt;] dput+0x199/0x1f0
 [&lt;ffffffff811fe77b&gt;] __fput+0x18b/0x220
 [&lt;ffffffff811fe84e&gt;] ____fput+0xe/0x10
 [&lt;ffffffff81097427&gt;] task_work_run+0x77/0x90
 [&lt;ffffffff81074d62&gt;] exit_to_usermode_loop+0x73/0xa2
 [&lt;ffffffff81003b7a&gt;] do_syscall_64+0xfa/0x110
 [&lt;ffffffff817acf65&gt;] entry_SYSCALL64_slow_path+0x25/0x25

Call Trace:
 [&lt;ffffffff817a9395&gt;] schedule+0x35/0x80
 [&lt;ffffffff81216dc3&gt;] __wait_on_freeing_inode+0xa3/0xd0
 [&lt;ffffffff810bc300&gt;] ? autoremove_wake_function+0x40/0x4
 [&lt;ffffffff8121771d&gt;] find_inode_fast+0x7d/0xb0
 [&lt;ffffffff8121794a&gt;] ilookup+0x6a/0xd0
 [&lt;ffffffffa02bc740&gt;] sync_node_pages+0x210/0x650 [f2fs]
 [&lt;ffffffff8122e690&gt;] ? do_fsync+0x70/0x70
 [&lt;ffffffffa02b085e&gt;] block_operations+0x9e/0xf0 [f2fs]
 [&lt;ffffffff8137b795&gt;] ? bio_endio+0x55/0x60
 [&lt;ffffffffa02b0942&gt;] write_checkpoint+0x92/0xba0 [f2fs]
 [&lt;ffffffff8117da57&gt;] ? mempool_free_slab+0x17/0x20
 [&lt;ffffffff8117de8b&gt;] ? mempool_free+0x2b/0x80
 [&lt;ffffffff8122e690&gt;] ? do_fsync+0x70/0x70
 [&lt;ffffffffa02a53e3&gt;] f2fs_sync_fs+0x63/0xd0 [f2fs]
 [&lt;ffffffff8129630f&gt;] ? ext4_sync_fs+0xbf/0x190
 [&lt;ffffffff8122e6b0&gt;] sync_fs_one_sb+0x20/0x30
 [&lt;ffffffff812002e9&gt;] iterate_supers+0xb9/0x110
 [&lt;ffffffff8122e7b5&gt;] sys_sync+0x55/0x90
 [&lt;ffffffff81003ae9&gt;] do_syscall_64+0x69/0x110
 [&lt;ffffffff817acf65&gt;] entry_SYSCALL64_slow_path+0x25/0x25

With following excuting serials, we will set inline_node in inode page
after inode was unlinked, result in a deadloop described as below:
1. open file
2. write file
3. unlink file
4. write file
5. close file

Thread A				Thread B
 - dput
  - iput_final
   - inode-&gt;i_state |= I_FREEING
   - evict
    - f2fs_evict_inode
					 - f2fs_sync_fs
					  - write_checkpoint
					   - block_operations
					    - f2fs_lock_all (down_write(cp_rwsem))
     - f2fs_lock_op (down_read(cp_rwsem))
					    - sync_node_pages
					     - ilookup
					      - find_inode_fast
					       - __wait_on_freeing_inode
					         (wait on I_FREEING clear)

Here, we change to set inline_node flag only for linked inode for fixing.

Reported-by: Yunlei He &lt;heyunlei@huawei.com&gt;
Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
Tested-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
Cc: stable@vger.kernel.org # v4.6
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>f2fs: support in batch multi blocks preallocation</title>
<updated>2016-05-11T16:56:35+00:00</updated>
<author>
<name>Chao Yu</name>
<email>yuchao0@huawei.com</email>
</author>
<published>2016-05-09T11:56:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=46008c6d42328710f9beaf5c2b47dc92b1cc1a75'/>
<id>46008c6d42328710f9beaf5c2b47dc92b1cc1a75</id>
<content type='text'>
This patch introduces reserve_new_blocks to make preallocation of multi
blocks as in batch operation, so it can avoid lots of redundant
operation, result in better performance.

In virtual machine, with rotational device:

time fallocate -l 32G /mnt/f2fs/file

Before:
real	0m4.584s
user	0m0.000s
sys	0m4.580s

After:
real	0m0.292s
user	0m0.000s
sys	0m0.272s

In x86, with SSD:

time fallocate -l 500G $MNT/testfile

Before : 24.758 s
After  :  1.604 s

Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
[Jaegeuk Kim: fix bugs and add performance numbers measured in x86.]
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch introduces reserve_new_blocks to make preallocation of multi
blocks as in batch operation, so it can avoid lots of redundant
operation, result in better performance.

In virtual machine, with rotational device:

time fallocate -l 32G /mnt/f2fs/file

Before:
real	0m4.584s
user	0m0.000s
sys	0m4.580s

After:
real	0m0.292s
user	0m0.000s
sys	0m0.272s

In x86, with SSD:

time fallocate -l 500G $MNT/testfile

Before : 24.758 s
After  :  1.604 s

Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
[Jaegeuk Kim: fix bugs and add performance numbers measured in x86.]
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>f2fs: do not preallocate block unaligned to 4KB</title>
<updated>2016-05-07T17:44:57+00:00</updated>
<author>
<name>Jaegeuk Kim</name>
<email>jaegeuk@kernel.org</email>
</author>
<published>2016-05-07T15:52:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0080c5076409d211fbe28d6f07966f7d39e58bad'/>
<id>0080c5076409d211fbe28d6f07966f7d39e58bad</id>
<content type='text'>
Previously f2fs_preallocate_blocks() tries to allocate unaligned blocks.
In f2fs_write_begin(), however, prepare_write_begin() does not skip its
allocation due to (len != 4KB).
So, it needs locking node page twice unexpectedly.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously f2fs_preallocate_blocks() tries to allocate unaligned blocks.
In f2fs_write_begin(), however, prepare_write_begin() does not skip its
allocation due to (len != 4KB).
So, it needs locking node page twice unexpectedly.

Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>f2fs: fix incorrect mapping in -&gt;bmap</title>
<updated>2016-05-07T17:32:32+00:00</updated>
<author>
<name>Chao Yu</name>
<email>yuchao0@huawei.com</email>
</author>
<published>2016-05-05T11:13:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=43473f96453f0b075c480a26ec4fc846d5fb3bd4'/>
<id>43473f96453f0b075c480a26ec4fc846d5fb3bd4</id>
<content type='text'>
Currently, generic_block_bmap is used in f2fs_bmap, its semantics is when
the mapping is been found, return position of target physical block,
otherwise return zero.

But, previously, when there is no mapping info for specified logical block,
f2fs_bmap will map target physical block to a uninitialized variable, which
should be wrong. Fix it.

Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, generic_block_bmap is used in f2fs_bmap, its semantics is when
the mapping is been found, return position of target physical block,
otherwise return zero.

But, previously, when there is no mapping info for specified logical block,
f2fs_bmap will map target physical block to a uninitialized variable, which
should be wrong. Fix it.

Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>f2fs: fix to clear private data in page</title>
<updated>2016-05-03T18:20:05+00:00</updated>
<author>
<name>Chao Yu</name>
<email>yuchao0@huawei.com</email>
</author>
<published>2016-04-29T12:09:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=23dc974eed576b2464b222a892272073adf6a92c'/>
<id>23dc974eed576b2464b222a892272073adf6a92c</id>
<content type='text'>
Private data in page should be removed during -&gt;releasepage or
-&gt;invalidatepage, otherwise garbage data would be remained in that page.

Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Private data in page should be removed during -&gt;releasepage or
-&gt;invalidatepage, otherwise garbage data would be remained in that page.

Signed-off-by: Chao Yu &lt;yuchao0@huawei.com&gt;
Signed-off-by: Jaegeuk Kim &lt;jaegeuk@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>direct-io: eliminate the offset argument to -&gt;direct_IO</title>
<updated>2016-05-01T23:58:39+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2016-04-07T15:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c8b8e32d700fe943a935e435ae251364d016c497'/>
<id>c8b8e32d700fe943a935e435ae251364d016c497</id>
<content type='text'>
Including blkdev_direct_IO and dax_do_io.  It has to be ki_pos to actually
work, so eliminate the superflous argument.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Including blkdev_direct_IO and dax_do_io.  It has to be ki_pos to actually
work, so eliminate the superflous argument.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
