mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-11 21:14:07 +08: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
@ -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 New Issue
Block a user