btrfs: send: fix old buffer length in fs_path_ensure_buf
authorDavid Sterba <dsterba@suse.cz>
Tue, 25 Feb 2014 18:32:59 +0000 (19:32 +0100)
committerJosef Bacik <jbacik@fb.com>
Mon, 10 Mar 2014 19:16:58 +0000 (15:16 -0400)
In "btrfs: send: lower memory requirements in common case" the code to
save the old_buf_len was incorrectly moved to a wrong place and broke
the original logic.

Reported-by: Filipe David Manana <fdmanana@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Filipe David Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
fs/btrfs/send.c

index 298e25d..246df85 100644 (file)
@@ -346,6 +346,9 @@ static int fs_path_ensure_buf(struct fs_path *p, int len)
        if (p->buf_len >= len)
                return 0;
 
+       path_len = p->end - p->start;
+       old_buf_len = p->buf_len;
+
        /*
         * First time the inline_buf does not suffice
         */
@@ -368,9 +371,6 @@ static int fs_path_ensure_buf(struct fs_path *p, int len)
                p->buf_len = ksize(p->buf);
        }
 
-       path_len = p->end - p->start;
-       old_buf_len = p->buf_len;
-
        if (p->reversed) {
                tmp_buf = p->buf + old_buf_len - path_len - 1;
                p->end = p->buf + p->buf_len - 1;