Merge tag 'ceph-for-6.8-rc1' of https://github.com/ceph/ceph-client
[sfrench/cifs-2.6.git] / fs / ceph / file.c
index 4dde0da10079b5e28334e4d91f11a15924871431..abe8028d95bf4e3e99091d83cf1784f2b9a249e1 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/falloc.h>
 #include <linux/iversion.h>
 #include <linux/ktime.h>
+#include <linux/splice.h>
 
 #include "super.h"
 #include "mds_client.h"
@@ -3014,8 +3015,8 @@ static ssize_t __ceph_copy_file_range(struct file *src_file, loff_t src_off,
                 * {read,write}_iter, which will get caps again.
                 */
                put_rd_wr_caps(src_ci, src_got, dst_ci, dst_got);
-               ret = do_splice_direct(src_file, &src_off, dst_file,
-                                      &dst_off, src_objlen, flags);
+               ret = splice_file_range(src_file, &src_off, dst_file, &dst_off,
+                                       src_objlen);
                /* Abort on short copies or on error */
                if (ret < (long)src_objlen) {
                        doutc(cl, "Failed partial copy (%zd)\n", ret);
@@ -3069,8 +3070,8 @@ out_caps:
         */
        if (len && (len < src_ci->i_layout.object_size)) {
                doutc(cl, "Final partial copy of %zu bytes\n", len);
-               bytes = do_splice_direct(src_file, &src_off, dst_file,
-                                        &dst_off, len, flags);
+               bytes = splice_file_range(src_file, &src_off, dst_file,
+                                         &dst_off, len);
                if (bytes > 0)
                        ret += bytes;
                else
@@ -3093,8 +3094,8 @@ static ssize_t ceph_copy_file_range(struct file *src_file, loff_t src_off,
                                     len, flags);
 
        if (ret == -EOPNOTSUPP || ret == -EXDEV)
-               ret = generic_copy_file_range(src_file, src_off, dst_file,
-                                             dst_off, len, flags);
+               ret = splice_copy_file_range(src_file, src_off, dst_file,
+                                            dst_off, len);
        return ret;
 }