Eric Sandeen 0357794830 exfat: use iter_file_splice_write
Doing copy_file_range() on exfat with a file opened for direct IO leads
to an -EFAULT:

# xfs_io -f -d -c "truncate 32768" \
       -c "copy_range -d 16384 -l 16384 -f 0" /mnt/test/junk
copy_range: Bad address

and the reason seems to be that we go through:

default_file_splice_write
 splice_from_pipe
  __splice_from_pipe
   write_pipe_buf
    __kernel_write
     new_sync_write
      generic_file_write_iter
       generic_file_direct_write
        exfat_direct_IO
         do_blockdev_direct_IO
          iov_iter_get_pages

and land in iterate_all_kinds(), which does "return -EFAULT" for our kvec
iter.

Setting exfat's splice_write to iter_file_splice_write fixes this and lets
fsx (which originally detected the problem) run to success from
the xfstests harness.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
2020-05-18 11:51:40 +09:00
..
2020-03-27 09:29:56 +00:00
2020-05-10 11:16:07 -07:00
2019-09-19 09:42:37 -07:00
2020-03-31 12:58:36 -07:00
2020-02-17 21:08:37 -08:00
2020-05-18 11:51:40 +09:00
2019-11-11 09:21:59 -05:00
2020-04-07 13:48:26 -07:00
2020-02-13 09:16:07 +01:00
2019-09-19 09:42:37 -07:00
2020-02-05 05:28:20 +00:00
\n
2020-01-30 15:37:41 -08:00
2020-04-10 15:36:22 -07:00
2019-09-19 09:42:37 -07:00
2020-01-14 13:28:28 -08:00
2020-04-21 09:51:10 -06:00
2020-04-24 12:44:19 -07:00
2019-08-07 21:51:47 -04:00
2020-02-07 14:48:35 -05:00
2020-02-07 14:48:35 -05:00
2020-03-06 11:06:15 +01:00
2020-03-05 21:00:40 -05:00
2020-03-05 21:00:40 -05:00
2020-04-06 10:38:59 -04:00
2020-03-12 17:33:11 -07:00
2019-12-08 14:37:36 +01:00
2020-04-28 14:37:40 -07:00