pool: kdbus_pool_copy(): increment context-specific variables conditionally
authorDaniel Mack <zonque@gmail.com>
Sat, 22 Mar 2014 14:08:33 +0000 (15:08 +0100)
committerDaniel Mack <zonque@gmail.com>
Sat, 22 Mar 2014 14:08:33 +0000 (15:08 +0100)
pool.c

diff --git a/pool.c b/pool.c
index 39b209eee61ee234a7e90e60ce9708a303150d77..9234c59f4a69bb424f4854a11582568246990873 100644 (file)
--- a/pool.c
+++ b/pool.c
@@ -507,10 +507,13 @@ kdbus_pool_copy(struct file *f_dst, size_t off_dst,
                        break;
                }
 
-               if (data)
+               if (data) {
                        ret = kdbus_pool_copy_data(p, o, data + dpos, n);
-               else
+                       dpos += n;
+               } else {
                        ret = kdbus_pool_copy_file(p, o, f_src, off_src, n);
+                       off_src += n;
+               }
                mark_page_accessed(p);
 
                status = aops->write_end(f_dst, mapping, fpos, n, n, p, fsdata);
@@ -522,10 +525,8 @@ kdbus_pool_copy(struct file *f_dst, size_t off_dst,
                        break;
                }
 
-               off_src += n;
                fpos += n;
                rem -= n;
-               dpos += n;
        }
 
        return ret;