summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2014-03-22 18:01:52 +0100
committerKay Sievers <kay@vrfy.org>2014-03-22 18:01:52 +0100
commit5a309126d8725d7602e87b7d3159449cd7dc2be0 (patch)
tree8d9eef4c67b25d23095ba1b5e469746adf19b277
parente773bb0838707b898ac795873a029a3751177af5 (diff)
downloadkdbus-bus-5a309126d8725d7602e87b7d3159449cd7dc2be0.tar.gz
kdbus-bus-5a309126d8725d7602e87b7d3159449cd7dc2be0.tar.bz2
kdbus-bus-5a309126d8725d7602e87b7d3159449cd7dc2be0.zip
kdbus_pool_copy: use offset + "pos" instead in both cases
-rw-r--r--pool.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/pool.c b/pool.c
index 9234c59f4a6..a6e689a4e95 100644
--- a/pool.c
+++ b/pool.c
@@ -478,16 +478,15 @@ static int kdbus_pool_copy_data(struct page *p, size_t start,
}
/* copy data to the receiver's pool */
-static size_t
-kdbus_pool_copy(struct file *f_dst, size_t off_dst,
- const void __user *data, struct file *f_src,
- size_t off_src, size_t len)
+static size_t kdbus_pool_copy(struct file *f_dst, size_t off_dst,
+ const void __user *data, struct file *f_src,
+ size_t off_src, size_t len)
{
struct address_space *mapping = f_dst->f_mapping;
const struct address_space_operations *aops = mapping->a_ops;
unsigned long fpos = off_dst;
unsigned long rem = len;
- size_t dpos = 0;
+ size_t pos = 0;
int ret = 0;
while (rem > 0) {
@@ -507,13 +506,11 @@ kdbus_pool_copy(struct file *f_dst, size_t off_dst,
break;
}
- if (data) {
- ret = kdbus_pool_copy_data(p, o, data + dpos, n);
- dpos += n;
- } else {
- ret = kdbus_pool_copy_file(p, o, f_src, off_src, n);
- off_src += n;
- }
+ if (data)
+ ret = kdbus_pool_copy_data(p, o, data + pos, n);
+ else
+ ret = kdbus_pool_copy_file(p, o, f_src,
+ off_src + pos, n);
mark_page_accessed(p);
status = aops->write_end(f_dst, mapping, fpos, n, n, p, fsdata);
@@ -525,6 +522,7 @@ kdbus_pool_copy(struct file *f_dst, size_t off_dst,
break;
}
+ pos += n;
fpos += n;
rem -= n;
}