2016-11-11 06:05:18

by Al Viro

[permalink] [raw]
Subject: [git pull] vfs.git

Christoph's and Jan's aio fixes, fixup for generic_file_splice_read
(removal of pointless detritus that actually breaks it when used for gfs2
->splice_read()) and fixup for generic_file_read_iter() interaction with
ITER_PIPE destinations.

The following changes since commit a909d3e636995ba7c349e2ca5dbb528154d4ac30:

Linux 4.9-rc3 (2016-10-29 13:52:02 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

for you to fetch changes up to e519e7774784f3fa7728657d780863805ed1c983:

splice: remove detritus from generic_file_splice_read() (2016-11-10 18:32:13 -0500)

----------------------------------------------------------------
Al Viro (1):
splice: remove detritus from generic_file_splice_read()

Christoph Hellwig (3):
aio: hold an extra file reference over AIO read/write operations
fs: remove the never implemented aio_fsync file operation
fs: remove aio_run_iocb

Eryu Guan (1):
mm/filemap: don't allow partially uptodate page for pipes

Jan Kara (1):
aio: fix freeze protection of aio writes

Documentation/filesystems/Locking | 1 -
Documentation/filesystems/vfs.txt | 1 -
fs/aio.c | 207 ++++++++++++++++++++------------------
fs/ntfs/dir.c | 2 -
fs/splice.c | 5 -
include/linux/fs.h | 2 +-
mm/filemap.c | 3 +
7 files changed, 113 insertions(+), 108 deletions(-)


2016-11-11 17:25:05

by Linus Torvalds

[permalink] [raw]
Subject: Re: [git pull] vfs.git

On Thu, Nov 10, 2016 at 10:05 PM, Al Viro <[email protected]> wrote:
> Christoph's and Jan's aio fixes, fixup for generic_file_splice_read
> (removal of pointless detritus that actually breaks it when used for gfs2
> ->splice_read()) and fixup for generic_file_read_iter() interaction with
> ITER_PIPE destinations.

Hmm. I also just pulled the Ceph update that has commit 8a8d56176635
("ceph: use default file splice read callback"). I _think_ this splice
fix makes that ceph change unnecessary. But testing is always good.

Ilya? Can you double-check the current -git tree (well, what I *will*
push out soon after it has passed my build tests)?

Because I think Ceph can go back to using generic_file_splice_read again.

Linus

2016-11-11 18:07:02

by Ilya Dryomov

[permalink] [raw]
Subject: Re: [git pull] vfs.git

On Fri, Nov 11, 2016 at 6:25 PM, Linus Torvalds
<[email protected]> wrote:
> On Thu, Nov 10, 2016 at 10:05 PM, Al Viro <[email protected]> wrote:
>> Christoph's and Jan's aio fixes, fixup for generic_file_splice_read
>> (removal of pointless detritus that actually breaks it when used for gfs2
>> ->splice_read()) and fixup for generic_file_read_iter() interaction with
>> ITER_PIPE destinations.
>
> Hmm. I also just pulled the Ceph update that has commit 8a8d56176635
> ("ceph: use default file splice read callback"). I _think_ this splice
> fix makes that ceph change unnecessary. But testing is always good.
>
> Ilya? Can you double-check the current -git tree (well, what I *will*
> push out soon after it has passed my build tests)?
>
> Because I think Ceph can go back to using generic_file_splice_read again.

Separate to Al's splice changes in this window, there is an old issue
where ceph manipulates page cache pages without the "buffer" capability
from the metadata server. Zheng is working on a fix and it's all tied
up together, so I'm not sure...

I'm afraid he called it a week already, but we will definitely look
into it.

Thanks,

Ilya

2016-11-12 03:37:00

by Yan, Zheng

[permalink] [raw]
Subject: Re: [git pull] vfs.git


> On 12 Nov 2016, at 01:25, Linus Torvalds <[email protected]> wrote:
>
> On Thu, Nov 10, 2016 at 10:05 PM, Al Viro <[email protected]> wrote:
>> Christoph's and Jan's aio fixes, fixup for generic_file_splice_read
>> (removal of pointless detritus that actually breaks it when used for gfs2
>> ->splice_read()) and fixup for generic_file_read_iter() interaction with
>> ITER_PIPE destinations.
>
> Hmm. I also just pulled the Ceph update that has commit 8a8d56176635
> ("ceph: use default file splice read callback"). I _think_ this splice
> fix makes that ceph change unnecessary. But testing is always good.

The commit is still needed. Al only fixes ITER_PIPE interaction with direct_IO. (it’s a no-op)
Cephfs case is special. Depending on what capabilities client has, client is allowed or
disallowed to read data from page cache. MDS changes client’s capabilities dynamically.
We don’t want to splice read fail when client is disallowed to get page from page cache.

Regards
Yan, Zheng



> Ilya? Can you double-check the current -git tree (well, what I *will*
> push out soon after it has passed my build tests)?
>
> Because I think Ceph can go back to using generic_file_splice_read again.
>
> Linus