btrfs: send: simplify allocation code in fs_path_ensure_buf

Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Josef Bacik <jbacik@fb.com>
This commit is contained in:
David Sterba 2014-02-25 19:33:08 +01:00 committed by Josef Bacik
parent 1b2782c8ed
commit 9c9ca00bd3

View File

@ -352,24 +352,18 @@ static int fs_path_ensure_buf(struct fs_path *p, int len)
/*
* First time the inline_buf does not suffice
*/
if (p->buf == p->inline_buf) {
p->buf = kmalloc(len, GFP_NOFS);
if (!p->buf)
return -ENOMEM;
/*
* The real size of the buffer is bigger, this will let the
* fast path happen most of the time
*/
p->buf_len = ksize(p->buf);
} else {
char *tmp;
tmp = krealloc(p->buf, len, GFP_NOFS);
if (!tmp)
return -ENOMEM;
p->buf = tmp;
p->buf_len = ksize(p->buf);
}
if (p->buf == p->inline_buf)
tmp_buf = kmalloc(len, GFP_NOFS);
else
tmp_buf = krealloc(p->buf, len, GFP_NOFS);
if (!tmp_buf)
return -ENOMEM;
p->buf = tmp_buf;
/*
* The real size of the buffer is bigger, this will let the fast path
* happen most of the time
*/
p->buf_len = ksize(p->buf);
if (p->reversed) {
tmp_buf = p->buf + old_buf_len - path_len - 1;