aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 10:48:20 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 10:48:20 -0700
commit14dc5249728ff699b1ca4dac01ad416a350a147a (patch)
tree4ffd91101601f55c5e0b53a00f03534b7e044ac4 /fs
parentMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 (diff)
parentsplice: direct splicing updates ppos twice (diff)
downloadlinux-dev-14dc5249728ff699b1ca4dac01ad416a350a147a.tar.xz
linux-dev-14dc5249728ff699b1ca4dac01ad416a350a147a.zip
Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block: splice: direct splicing updates ppos twice more ACSI removal umem: Fix match of pci_ids in umem driver umem: Remove references to dead CONFIG_MM_MAP_MEMORY variable remove the documentation for the legacy CDROM drivers
Diffstat (limited to 'fs')
-rw-r--r--fs/splice.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/splice.c b/fs/splice.c
index 6c9828651e6f..53fc2082a468 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1061,8 +1061,9 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
while (len) {
size_t read_len;
+ loff_t pos = sd->pos;
- ret = do_splice_to(in, &sd->pos, pipe, len, flags);
+ ret = do_splice_to(in, &pos, pipe, len, flags);
if (unlikely(ret <= 0))
goto out_release;
@@ -1080,6 +1081,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
bytes += ret;
len -= ret;
+ sd->pos = pos;
if (ret < read_len)
goto out_release;