diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 13:48:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 13:48:20 -0400 |
commit | 14dc5249728ff699b1ca4dac01ad416a350a147a (patch) | |
tree | 4ffd91101601f55c5e0b53a00f03534b7e044ac4 /fs | |
parent | 02b2318e07f98a7cdf7089a4457a8d62424aa824 (diff) | |
parent | bcd4f3acbaec102e2b8000c977ecc38dcd0fe367 (diff) |
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.c | 4 |
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, | |||
1061 | 1061 | ||
1062 | while (len) { | 1062 | while (len) { |
1063 | size_t read_len; | 1063 | size_t read_len; |
1064 | loff_t pos = sd->pos; | ||
1064 | 1065 | ||
1065 | ret = do_splice_to(in, &sd->pos, pipe, len, flags); | 1066 | ret = do_splice_to(in, &pos, pipe, len, flags); |
1066 | if (unlikely(ret <= 0)) | 1067 | if (unlikely(ret <= 0)) |
1067 | goto out_release; | 1068 | goto out_release; |
1068 | 1069 | ||
@@ -1080,6 +1081,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd, | |||
1080 | 1081 | ||
1081 | bytes += ret; | 1082 | bytes += ret; |
1082 | len -= ret; | 1083 | len -= ret; |
1084 | sd->pos = pos; | ||
1083 | 1085 | ||
1084 | if (ret < read_len) | 1086 | if (ret < read_len) |
1085 | goto out_release; | 1087 | goto out_release; |