Btrfs: Abstract similar code for btrfs_block_rsv_add{, _noflush}
btrfs_block_rsv_add{, _noflush}() have similar code, so abstract that code. Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
3254c87618
commit
61b520a9d0
|
@ -3796,16 +3796,16 @@ void btrfs_free_block_rsv(struct btrfs_root *root,
|
||||||
kfree(rsv);
|
kfree(rsv);
|
||||||
}
|
}
|
||||||
|
|
||||||
int btrfs_block_rsv_add(struct btrfs_root *root,
|
static inline int __block_rsv_add(struct btrfs_root *root,
|
||||||
struct btrfs_block_rsv *block_rsv,
|
struct btrfs_block_rsv *block_rsv,
|
||||||
u64 num_bytes)
|
u64 num_bytes, int flush)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (num_bytes == 0)
|
if (num_bytes == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ret = reserve_metadata_bytes(root, block_rsv, num_bytes, 1);
|
ret = reserve_metadata_bytes(root, block_rsv, num_bytes, flush);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
block_rsv_add_bytes(block_rsv, num_bytes, 1);
|
block_rsv_add_bytes(block_rsv, num_bytes, 1);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3814,22 +3814,18 @@ int btrfs_block_rsv_add(struct btrfs_root *root,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int btrfs_block_rsv_add(struct btrfs_root *root,
|
||||||
|
struct btrfs_block_rsv *block_rsv,
|
||||||
|
u64 num_bytes)
|
||||||
|
{
|
||||||
|
return __block_rsv_add(root, block_rsv, num_bytes, 1);
|
||||||
|
}
|
||||||
|
|
||||||
int btrfs_block_rsv_add_noflush(struct btrfs_root *root,
|
int btrfs_block_rsv_add_noflush(struct btrfs_root *root,
|
||||||
struct btrfs_block_rsv *block_rsv,
|
struct btrfs_block_rsv *block_rsv,
|
||||||
u64 num_bytes)
|
u64 num_bytes)
|
||||||
{
|
{
|
||||||
int ret;
|
return __block_rsv_add(root, block_rsv, num_bytes, 0);
|
||||||
|
|
||||||
if (num_bytes == 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
ret = reserve_metadata_bytes(root, block_rsv, num_bytes, 0);
|
|
||||||
if (!ret) {
|
|
||||||
block_rsv_add_bytes(block_rsv, num_bytes, 1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int btrfs_block_rsv_check(struct btrfs_root *root,
|
int btrfs_block_rsv_check(struct btrfs_root *root,
|
||||||
|
|
Loading…
Reference in a new issue