aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorFlorian Weimer <fw@deneb.enyo.de>2020-01-31 19:38:41 +0100
committerGitHub <noreply@github.com>2020-01-31 13:38:41 -0500
commita7ba1d42d0b09377aa7060158859febc292b2228 (patch)
tree42bc94fd80c5ff46283352ed9921e928ca5472f9 /include
parent81ab7d8c8c3e9524d93a0459b72e6950347135ac (diff)
downloadlibfuse-a7ba1d42d0b09377aa7060158859febc292b2228.tar.gz
Update comment for the copy_file_range operation (#497)
copy_file_range was first implemented with copy-based emulation in glibc 2.27, but the emulation was subsequently removed again because correct emulation depends on why the application attempted to make a copy. Therefore, file systems cannot rely on low-level userspace performing emulation.
Diffstat (limited to 'include')
-rw-r--r--include/fuse.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/fuse.h b/include/fuse.h
index 3df61b1..a92d5ee 100644
--- a/include/fuse.h
+++ b/include/fuse.h
@@ -772,9 +772,10 @@ struct fuse_operations {
* additional cost of transferring data through the FUSE kernel module
* to user space (glibc) and then back into the FUSE filesystem again.
*
- * In case this method is not implemented, glibc falls back to reading
- * data from the source and writing to the destination. Effectively
- * doing an inefficient copy of the data.
+ * In case this method is not implemented, applications are expected to
+ * fall back to a regular file copy. (Some glibc versions did this
+ * emulation automatically, but the emulation has been removed from all
+ * glibc release branches.)
*/
ssize_t (*copy_file_range) (const char *path_in,
struct fuse_file_info *fi_in,