mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
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:
parent
1b2782c8ed
commit
9c9ca00bd3
1 changed files with 12 additions and 18 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue