<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/direct-io.c, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-09-27T01:16:51Z</updated>
<entry>
<title>fuse: honour max_read and max_write in direct_io mode</title>
<updated>2014-09-27T01:16:51Z</updated>
<author>
<name>Miklos Szeredi</name>
</author>
<published>2014-09-24T15:09:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c80929c4c4d54e568b07ab85877d5fd38f4b02f'/>
<id>urn:sha1:2c80929c4c4d54e568b07ab85877d5fd38f4b02f</id>
<content type='text'>
The third argument of fuse_get_user_pages() "nbytesp" refers to the number of
bytes a caller asked to pack into fuse request. This value may be lesser
than capacity of fuse request or iov_iter.  So fuse_get_user_pages() must
ensure that *nbytesp won't grow.

Now, when helper iov_iter_get_pages() performs all hard work of extracting
pages from iov_iter, it can be done by passing properly calculated
"maxsize" to the helper.

The other caller of iov_iter_get_pages() (dio_refill_pages()) doesn't need
this capability, so pass LONG_MAX as the maxsize argument here.

Fixes: c9c37e2e6378 ("fuse: switch to iov_iter_get_pages()")
Reported-by: Werner Baumann &lt;werner.baumann@onlinehome.de&gt;
Tested-by: Maxim Patlasov &lt;mpatlasov@parallels.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>switch iov_iter_get_pages() to passing maximal number of pages</title>
<updated>2014-08-07T18:40:11Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-06-19T00:34:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c7f3888ad7f0932a87fb76e6e4edff2a90cc7920'/>
<id>urn:sha1:c7f3888ad7f0932a87fb76e6e4edff2a90cc7920</id>
<content type='text'>
... instead of maximal size.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>direct-io: fix AIO regression</title>
<updated>2014-08-01T06:35:51Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2014-07-30T11:18:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=af436472772d474acfad724ce789e003d1ca41c3'/>
<id>urn:sha1:af436472772d474acfad724ce789e003d1ca41c3</id>
<content type='text'>
The direct-io.c rewrite to use the iov_iter infrastructure stopped updating
the size field in struct dio_submit, and thus rendered the check for
allowing asynchronous completions to always return false.  Fix this by
comparing it to the count of bytes in the iov_iter instead.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reported-by: Tim Chen &lt;tim.c.chen@linux.intel.com&gt;
Tested-by: Tim Chen &lt;tim.c.chen@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>direct-io: fix uninitialized warning in do_direct_IO()</title>
<updated>2014-07-24T10:17:07Z</updated>
<author>
<name>Boaz Harrosh</name>
</author>
<published>2014-07-20T09:09:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6fcc5420bfb91049a318bb4d88fe471248b5b391'/>
<id>urn:sha1:6fcc5420bfb91049a318bb4d88fe471248b5b391</id>
<content type='text'>
The following warnings:

  fs/direct-io.c: In function ‘__blockdev_direct_IO’:
  fs/direct-io.c:1011:12: warning: ‘to’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  fs/direct-io.c:913:16: note: ‘to’ was declared here
  fs/direct-io.c:1011:12: warning: ‘from’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  fs/direct-io.c:913:10: note: ‘from’ was declared here

are false positive because dio_get_page() either fails, or sets both
'from' and 'to'.

Paul Bolle said ...
Maybe it's better to move initializing "to" and "from" out of
dio_get_page(). That _might_ make it easier for both the the reader and
the compiler to understand what's going on. Something like this:

Christoph Hellwig said ...
The fix of moving the code definitively looks nicer, while I think
uninitialized_var is horrible wart that won't get anywhere near my code.

Boaz Harrosh: I agree with Christoph and Paul

Signed-off-by: Boaz Harrosh &lt;boaz@plexistor.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>new helper: iov_iter_npages()</title>
<updated>2014-05-06T21:32:52Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-03-19T05:16:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f67da30c1d5fc9e341bc8121708874bfd7b31e45'/>
<id>urn:sha1:f67da30c1d5fc9e341bc8121708874bfd7b31e45</id>
<content type='text'>
counts the pages covered by iov_iter, up to given limit.
do_block_direct_io() and fuse_iter_npages() switched to
it.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>new helper: iov_iter_get_pages()</title>
<updated>2014-05-06T21:32:50Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-03-15T08:05:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b2c99d15559e285384c742db52316802e24b0bd'/>
<id>urn:sha1:7b2c99d15559e285384c742db52316802e24b0bd</id>
<content type='text'>
iov_iter_get_pages(iter, pages, maxsize, &amp;start) grabs references pinning
the pages of up to maxsize of (contiguous) data from iter.  Returns the
amount of memory grabbed or -error.  In case of success, the requested
area begins at offset start in pages[0] and runs through pages[1], etc.
Less than requested amount might be returned - either because the contiguous
area in the beginning of iterator is smaller than requested, or because
the kernel failed to pin that many pages.

direct-io.c switched to using iov_iter_get_pages()

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>dio: take updating -&gt;result into do_direct_IO()</title>
<updated>2014-05-06T21:32:50Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-03-10T06:30:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3320c60b3a26d05666285c55ab08ee043c017ba3'/>
<id>urn:sha1:3320c60b3a26d05666285c55ab08ee043c017ba3</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>new primitive: iov_iter_alignment()</title>
<updated>2014-05-06T21:32:47Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-03-05T18:50:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=886a39115005ced8b15ab067c9c2a8d546b40a5e'/>
<id>urn:sha1:886a39115005ced8b15ab067c9c2a8d546b40a5e</id>
<content type='text'>
returns the value aligned as badly as the worst remaining segment
in iov_iter is.  Use instead of open-coded equivalents.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>switch {__,}blockdev_direct_IO() to iov_iter</title>
<updated>2014-05-06T21:32:46Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-03-05T06:33:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=31b140398ce56ab41646eda7f02bcb78d6a4c916'/>
<id>urn:sha1:31b140398ce56ab41646eda7f02bcb78d6a4c916</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge tag 'xfs-for-linus-3.15-rc1' of git://oss.sgi.com/xfs/xfs</title>
<updated>2014-04-04T22:50:08Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2014-04-04T22:50:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d15e03104eb9a4f8e244ab6ed3ca5a107e46db13'/>
<id>urn:sha1:d15e03104eb9a4f8e244ab6ed3ca5a107e46db13</id>
<content type='text'>
Pull xfs update from Dave Chinner:
 "There are a couple of new fallocate features in this request - it was
  decided that it was easiest to push them through the XFS tree using
  topic branches and have the ext4 support be based on those branches.
  Hence you may see some overlap with the ext4 tree merge depending on
  how they including those topic branches into their tree.  Other than
  that, there is O_TMPFILE support, some cleanups and bug fixes.

  The main changes in the XFS tree for 3.15-rc1 are:

   - O_TMPFILE support
   - allowing AIO+DIO writes beyond EOF
   - FALLOC_FL_COLLAPSE_RANGE support for fallocate syscall and XFS
     implementation
   - FALLOC_FL_ZERO_RANGE support for fallocate syscall and XFS
     implementation
   - IO verifier cleanup and rework
   - stack usage reduction changes
   - vm_map_ram NOIO context fixes to remove lockdep warings
   - various bug fixes and cleanups"

* tag 'xfs-for-linus-3.15-rc1' of git://oss.sgi.com/xfs/xfs: (34 commits)
  xfs: fix directory hash ordering bug
  xfs: extra semi-colon breaks a condition
  xfs: Add support for FALLOC_FL_ZERO_RANGE
  fs: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
  xfs: inode log reservations are still too small
  xfs: xfs_check_page_type buffer checks need help
  xfs: avoid AGI/AGF deadlock scenario for inode chunk allocation
  xfs: use NOIO contexts for vm_map_ram
  xfs: don't leak EFSBADCRC to userspace
  xfs: fix directory inode iolock lockdep false positive
  xfs: allocate xfs_da_args to reduce stack footprint
  xfs: always do log forces via the workqueue
  xfs: modify verifiers to differentiate CRC from other errors
  xfs: print useful caller information in xfs_error_report
  xfs: add xfs_verifier_error()
  xfs: add helper for updating checksums on xfs_bufs
  xfs: add helper for verifying checksums on xfs_bufs
  xfs: Use defines for CRC offsets in all cases
  xfs: skip pointless CRC updates after verifier failures
  xfs: Add support FALLOC_FL_COLLAPSE_RANGE for fallocate
  ...
</content>
</entry>
</feed>
