You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'cleanups-post-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.1
Signed-off-by: Chris Mason <clm@fb.com> Conflicts: fs/btrfs/disk-io.c
This commit is contained in:
@@ -87,7 +87,7 @@ BTRFS_WORK_HELPER(scrubwrc_helper);
|
||||
BTRFS_WORK_HELPER(scrubnc_helper);
|
||||
|
||||
static struct __btrfs_workqueue *
|
||||
__btrfs_alloc_workqueue(const char *name, int flags, int max_active,
|
||||
__btrfs_alloc_workqueue(const char *name, unsigned int flags, int max_active,
|
||||
int thresh)
|
||||
{
|
||||
struct __btrfs_workqueue *ret = kzalloc(sizeof(*ret), GFP_NOFS);
|
||||
@@ -132,7 +132,7 @@ static inline void
|
||||
__btrfs_destroy_workqueue(struct __btrfs_workqueue *wq);
|
||||
|
||||
struct btrfs_workqueue *btrfs_alloc_workqueue(const char *name,
|
||||
int flags,
|
||||
unsigned int flags,
|
||||
int max_active,
|
||||
int thresh)
|
||||
{
|
||||
|
||||
@@ -66,7 +66,7 @@ BTRFS_WORK_HELPER_PROTO(scrubwrc_helper);
|
||||
BTRFS_WORK_HELPER_PROTO(scrubnc_helper);
|
||||
|
||||
struct btrfs_workqueue *btrfs_alloc_workqueue(const char *name,
|
||||
int flags,
|
||||
unsigned int flags,
|
||||
int max_active,
|
||||
int thresh);
|
||||
void btrfs_init_work(struct btrfs_work *work, btrfs_work_func_t helper,
|
||||
|
||||
@@ -3241,8 +3241,5 @@ void btrfsic_unmount(struct btrfs_root *root,
|
||||
|
||||
mutex_unlock(&btrfsic_mutex);
|
||||
|
||||
if (is_vmalloc_addr(state))
|
||||
vfree(state);
|
||||
else
|
||||
kfree(state);
|
||||
kvfree(state);
|
||||
}
|
||||
|
||||
@@ -750,7 +750,7 @@ static int comp_num_workspace[BTRFS_COMPRESS_TYPES];
|
||||
static atomic_t comp_alloc_workspace[BTRFS_COMPRESS_TYPES];
|
||||
static wait_queue_head_t comp_workspace_wait[BTRFS_COMPRESS_TYPES];
|
||||
|
||||
static struct btrfs_compress_op *btrfs_compress_op[] = {
|
||||
static const struct btrfs_compress_op * const btrfs_compress_op[] = {
|
||||
&btrfs_zlib_compress,
|
||||
&btrfs_lzo_compress,
|
||||
};
|
||||
|
||||
@@ -77,7 +77,7 @@ struct btrfs_compress_op {
|
||||
size_t srclen, size_t destlen);
|
||||
};
|
||||
|
||||
extern struct btrfs_compress_op btrfs_zlib_compress;
|
||||
extern struct btrfs_compress_op btrfs_lzo_compress;
|
||||
extern const struct btrfs_compress_op btrfs_zlib_compress;
|
||||
extern const struct btrfs_compress_op btrfs_lzo_compress;
|
||||
|
||||
#endif
|
||||
|
||||
+28
-25
@@ -1072,7 +1072,7 @@ static noinline int update_ref_for_cow(struct btrfs_trans_handle *trans,
|
||||
ret = btrfs_dec_ref(trans, root, buf, 1);
|
||||
BUG_ON(ret); /* -ENOMEM */
|
||||
}
|
||||
clean_tree_block(trans, root, buf);
|
||||
clean_tree_block(trans, root->fs_info, buf);
|
||||
*last_ref = 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -1677,7 +1677,7 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
|
||||
continue;
|
||||
}
|
||||
|
||||
cur = btrfs_find_tree_block(root, blocknr);
|
||||
cur = btrfs_find_tree_block(root->fs_info, blocknr);
|
||||
if (cur)
|
||||
uptodate = btrfs_buffer_uptodate(cur, gen, 0);
|
||||
else
|
||||
@@ -1942,7 +1942,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
|
||||
|
||||
path->locks[level] = 0;
|
||||
path->nodes[level] = NULL;
|
||||
clean_tree_block(trans, root, mid);
|
||||
clean_tree_block(trans, root->fs_info, mid);
|
||||
btrfs_tree_unlock(mid);
|
||||
/* once for the path */
|
||||
free_extent_buffer(mid);
|
||||
@@ -1996,7 +1996,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
|
||||
if (wret < 0 && wret != -ENOSPC)
|
||||
ret = wret;
|
||||
if (btrfs_header_nritems(right) == 0) {
|
||||
clean_tree_block(trans, root, right);
|
||||
clean_tree_block(trans, root->fs_info, right);
|
||||
btrfs_tree_unlock(right);
|
||||
del_ptr(root, path, level + 1, pslot + 1);
|
||||
root_sub_used(root, right->len);
|
||||
@@ -2040,7 +2040,7 @@ static noinline int balance_level(struct btrfs_trans_handle *trans,
|
||||
BUG_ON(wret == 1);
|
||||
}
|
||||
if (btrfs_header_nritems(mid) == 0) {
|
||||
clean_tree_block(trans, root, mid);
|
||||
clean_tree_block(trans, root->fs_info, mid);
|
||||
btrfs_tree_unlock(mid);
|
||||
del_ptr(root, path, level + 1, pslot);
|
||||
root_sub_used(root, mid->len);
|
||||
@@ -2258,7 +2258,7 @@ static void reada_for_search(struct btrfs_root *root,
|
||||
|
||||
search = btrfs_node_blockptr(node, slot);
|
||||
blocksize = root->nodesize;
|
||||
eb = btrfs_find_tree_block(root, search);
|
||||
eb = btrfs_find_tree_block(root->fs_info, search);
|
||||
if (eb) {
|
||||
free_extent_buffer(eb);
|
||||
return;
|
||||
@@ -2318,7 +2318,7 @@ static noinline void reada_for_balance(struct btrfs_root *root,
|
||||
if (slot > 0) {
|
||||
block1 = btrfs_node_blockptr(parent, slot - 1);
|
||||
gen = btrfs_node_ptr_generation(parent, slot - 1);
|
||||
eb = btrfs_find_tree_block(root, block1);
|
||||
eb = btrfs_find_tree_block(root->fs_info, block1);
|
||||
/*
|
||||
* if we get -eagain from btrfs_buffer_uptodate, we
|
||||
* don't want to return eagain here. That will loop
|
||||
@@ -2331,7 +2331,7 @@ static noinline void reada_for_balance(struct btrfs_root *root,
|
||||
if (slot + 1 < nritems) {
|
||||
block2 = btrfs_node_blockptr(parent, slot + 1);
|
||||
gen = btrfs_node_ptr_generation(parent, slot + 1);
|
||||
eb = btrfs_find_tree_block(root, block2);
|
||||
eb = btrfs_find_tree_block(root->fs_info, block2);
|
||||
if (eb && btrfs_buffer_uptodate(eb, gen, 1) != 0)
|
||||
block2 = 0;
|
||||
free_extent_buffer(eb);
|
||||
@@ -2449,7 +2449,7 @@ read_block_for_search(struct btrfs_trans_handle *trans,
|
||||
blocknr = btrfs_node_blockptr(b, slot);
|
||||
gen = btrfs_node_ptr_generation(b, slot);
|
||||
|
||||
tmp = btrfs_find_tree_block(root, blocknr);
|
||||
tmp = btrfs_find_tree_block(root->fs_info, blocknr);
|
||||
if (tmp) {
|
||||
/* first we do an atomic uptodate check */
|
||||
if (btrfs_buffer_uptodate(tmp, gen, 1) > 0) {
|
||||
@@ -3125,7 +3125,8 @@ again:
|
||||
* higher levels
|
||||
*
|
||||
*/
|
||||
static void fixup_low_keys(struct btrfs_root *root, struct btrfs_path *path,
|
||||
static void fixup_low_keys(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_path *path,
|
||||
struct btrfs_disk_key *key, int level)
|
||||
{
|
||||
int i;
|
||||
@@ -3136,7 +3137,7 @@ static void fixup_low_keys(struct btrfs_root *root, struct btrfs_path *path,
|
||||
if (!path->nodes[i])
|
||||
break;
|
||||
t = path->nodes[i];
|
||||
tree_mod_log_set_node_key(root->fs_info, t, tslot, 1);
|
||||
tree_mod_log_set_node_key(fs_info, t, tslot, 1);
|
||||
btrfs_set_node_key(t, key, tslot);
|
||||
btrfs_mark_buffer_dirty(path->nodes[i]);
|
||||
if (tslot != 0)
|
||||
@@ -3150,7 +3151,8 @@ static void fixup_low_keys(struct btrfs_root *root, struct btrfs_path *path,
|
||||
* This function isn't completely safe. It's the caller's responsibility
|
||||
* that the new key won't break the order
|
||||
*/
|
||||
void btrfs_set_item_key_safe(struct btrfs_root *root, struct btrfs_path *path,
|
||||
void btrfs_set_item_key_safe(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_path *path,
|
||||
struct btrfs_key *new_key)
|
||||
{
|
||||
struct btrfs_disk_key disk_key;
|
||||
@@ -3172,7 +3174,7 @@ void btrfs_set_item_key_safe(struct btrfs_root *root, struct btrfs_path *path,
|
||||
btrfs_set_item_key(eb, &disk_key, slot);
|
||||
btrfs_mark_buffer_dirty(eb);
|
||||
if (slot == 0)
|
||||
fixup_low_keys(root, path, &disk_key, 1);
|
||||
fixup_low_keys(fs_info, path, &disk_key, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3691,7 +3693,7 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
|
||||
if (left_nritems)
|
||||
btrfs_mark_buffer_dirty(left);
|
||||
else
|
||||
clean_tree_block(trans, root, left);
|
||||
clean_tree_block(trans, root->fs_info, left);
|
||||
|
||||
btrfs_mark_buffer_dirty(right);
|
||||
|
||||
@@ -3703,7 +3705,7 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
|
||||
if (path->slots[0] >= left_nritems) {
|
||||
path->slots[0] -= left_nritems;
|
||||
if (btrfs_header_nritems(path->nodes[0]) == 0)
|
||||
clean_tree_block(trans, root, path->nodes[0]);
|
||||
clean_tree_block(trans, root->fs_info, path->nodes[0]);
|
||||
btrfs_tree_unlock(path->nodes[0]);
|
||||
free_extent_buffer(path->nodes[0]);
|
||||
path->nodes[0] = right;
|
||||
@@ -3927,10 +3929,10 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
|
||||
if (right_nritems)
|
||||
btrfs_mark_buffer_dirty(right);
|
||||
else
|
||||
clean_tree_block(trans, root, right);
|
||||
clean_tree_block(trans, root->fs_info, right);
|
||||
|
||||
btrfs_item_key(right, &disk_key, 0);
|
||||
fixup_low_keys(root, path, &disk_key, 1);
|
||||
fixup_low_keys(root->fs_info, path, &disk_key, 1);
|
||||
|
||||
/* then fixup the leaf pointer in the path */
|
||||
if (path->slots[0] < push_items) {
|
||||
@@ -4167,6 +4169,7 @@ static noinline int split_leaf(struct btrfs_trans_handle *trans,
|
||||
int mid;
|
||||
int slot;
|
||||
struct extent_buffer *right;
|
||||
struct btrfs_fs_info *fs_info = root->fs_info;
|
||||
int ret = 0;
|
||||
int wret;
|
||||
int split;
|
||||
@@ -4270,10 +4273,10 @@ again:
|
||||
btrfs_set_header_backref_rev(right, BTRFS_MIXED_BACKREF_REV);
|
||||
btrfs_set_header_owner(right, root->root_key.objectid);
|
||||
btrfs_set_header_level(right, 0);
|
||||
write_extent_buffer(right, root->fs_info->fsid,
|
||||
write_extent_buffer(right, fs_info->fsid,
|
||||
btrfs_header_fsid(), BTRFS_FSID_SIZE);
|
||||
|
||||
write_extent_buffer(right, root->fs_info->chunk_tree_uuid,
|
||||
write_extent_buffer(right, fs_info->chunk_tree_uuid,
|
||||
btrfs_header_chunk_tree_uuid(right),
|
||||
BTRFS_UUID_SIZE);
|
||||
|
||||
@@ -4296,7 +4299,7 @@ again:
|
||||
path->nodes[0] = right;
|
||||
path->slots[0] = 0;
|
||||
if (path->slots[1] == 0)
|
||||
fixup_low_keys(root, path, &disk_key, 1);
|
||||
fixup_low_keys(fs_info, path, &disk_key, 1);
|
||||
}
|
||||
btrfs_mark_buffer_dirty(right);
|
||||
return ret;
|
||||
@@ -4614,7 +4617,7 @@ void btrfs_truncate_item(struct btrfs_root *root, struct btrfs_path *path,
|
||||
btrfs_set_disk_key_offset(&disk_key, offset + size_diff);
|
||||
btrfs_set_item_key(leaf, &disk_key, slot);
|
||||
if (slot == 0)
|
||||
fixup_low_keys(root, path, &disk_key, 1);
|
||||
fixup_low_keys(root->fs_info, path, &disk_key, 1);
|
||||
}
|
||||
|
||||
item = btrfs_item_nr(slot);
|
||||
@@ -4715,7 +4718,7 @@ void setup_items_for_insert(struct btrfs_root *root, struct btrfs_path *path,
|
||||
|
||||
if (path->slots[0] == 0) {
|
||||
btrfs_cpu_key_to_disk(&disk_key, cpu_key);
|
||||
fixup_low_keys(root, path, &disk_key, 1);
|
||||
fixup_low_keys(root->fs_info, path, &disk_key, 1);
|
||||
}
|
||||
btrfs_unlock_up_safe(path, 1);
|
||||
|
||||
@@ -4887,7 +4890,7 @@ static void del_ptr(struct btrfs_root *root, struct btrfs_path *path,
|
||||
struct btrfs_disk_key disk_key;
|
||||
|
||||
btrfs_node_key(parent, &disk_key, 0);
|
||||
fixup_low_keys(root, path, &disk_key, level + 1);
|
||||
fixup_low_keys(root->fs_info, path, &disk_key, level + 1);
|
||||
}
|
||||
btrfs_mark_buffer_dirty(parent);
|
||||
}
|
||||
@@ -4980,7 +4983,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
|
||||
btrfs_set_header_level(leaf, 0);
|
||||
} else {
|
||||
btrfs_set_path_blocking(path);
|
||||
clean_tree_block(trans, root, leaf);
|
||||
clean_tree_block(trans, root->fs_info, leaf);
|
||||
btrfs_del_leaf(trans, root, path, leaf);
|
||||
}
|
||||
} else {
|
||||
@@ -4989,7 +4992,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
|
||||
struct btrfs_disk_key disk_key;
|
||||
|
||||
btrfs_item_key(leaf, &disk_key, 0);
|
||||
fixup_low_keys(root, path, &disk_key, 1);
|
||||
fixup_low_keys(root->fs_info, path, &disk_key, 1);
|
||||
}
|
||||
|
||||
/* delete the leaf if it is mostly empty */
|
||||
|
||||
+2
-1
@@ -3488,7 +3488,8 @@ int btrfs_previous_item(struct btrfs_root *root,
|
||||
int type);
|
||||
int btrfs_previous_extent_item(struct btrfs_root *root,
|
||||
struct btrfs_path *path, u64 min_objectid);
|
||||
void btrfs_set_item_key_safe(struct btrfs_root *root, struct btrfs_path *path,
|
||||
void btrfs_set_item_key_safe(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_path *path,
|
||||
struct btrfs_key *new_key);
|
||||
struct extent_buffer *btrfs_root_node(struct btrfs_root *root);
|
||||
struct extent_buffer *btrfs_lock_root_node(struct btrfs_root *root);
|
||||
|
||||
@@ -1383,7 +1383,7 @@ out:
|
||||
|
||||
|
||||
static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root,
|
||||
struct btrfs_root *root, int nr)
|
||||
struct btrfs_fs_info *fs_info, int nr)
|
||||
{
|
||||
struct btrfs_async_delayed_work *async_work;
|
||||
|
||||
@@ -1399,7 +1399,7 @@ static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root,
|
||||
btrfs_async_run_delayed_root, NULL, NULL);
|
||||
async_work->nr = nr;
|
||||
|
||||
btrfs_queue_work(root->fs_info->delayed_workers, &async_work->work);
|
||||
btrfs_queue_work(fs_info->delayed_workers, &async_work->work);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1426,6 +1426,7 @@ static int could_end_wait(struct btrfs_delayed_root *delayed_root, int seq)
|
||||
void btrfs_balance_delayed_items(struct btrfs_root *root)
|
||||
{
|
||||
struct btrfs_delayed_root *delayed_root;
|
||||
struct btrfs_fs_info *fs_info = root->fs_info;
|
||||
|
||||
delayed_root = btrfs_get_delayed_root(root);
|
||||
|
||||
@@ -1438,7 +1439,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
|
||||
|
||||
seq = atomic_read(&delayed_root->items_seq);
|
||||
|
||||
ret = btrfs_wq_run_delayed_node(delayed_root, root, 0);
|
||||
ret = btrfs_wq_run_delayed_node(delayed_root, fs_info, 0);
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
@@ -1447,7 +1448,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
|
||||
return;
|
||||
}
|
||||
|
||||
btrfs_wq_run_delayed_node(delayed_root, root, BTRFS_DELAYED_BATCH);
|
||||
btrfs_wq_run_delayed_node(delayed_root, fs_info, BTRFS_DELAYED_BATCH);
|
||||
}
|
||||
|
||||
/* Will return 0 or -ENOMEM */
|
||||
|
||||
+301
-253
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -52,7 +52,7 @@ int reada_tree_block_flagged(struct btrfs_root *root, u64 bytenr,
|
||||
struct extent_buffer *btrfs_find_create_tree_block(struct btrfs_root *root,
|
||||
u64 bytenr);
|
||||
void clean_tree_block(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_root *root, struct extent_buffer *buf);
|
||||
struct btrfs_fs_info *fs_info, struct extent_buffer *buf);
|
||||
int open_ctree(struct super_block *sb,
|
||||
struct btrfs_fs_devices *fs_devices,
|
||||
char *options);
|
||||
@@ -61,7 +61,7 @@ int write_ctree_super(struct btrfs_trans_handle *trans,
|
||||
struct btrfs_root *root, int max_mirrors);
|
||||
struct buffer_head *btrfs_read_dev_super(struct block_device *bdev);
|
||||
int btrfs_commit_super(struct btrfs_root *root);
|
||||
struct extent_buffer *btrfs_find_tree_block(struct btrfs_root *root,
|
||||
struct extent_buffer *btrfs_find_tree_block(struct btrfs_fs_info *fs_info,
|
||||
u64 bytenr);
|
||||
struct btrfs_root *btrfs_read_fs_root(struct btrfs_root *tree_root,
|
||||
struct btrfs_key *location);
|
||||
|
||||
@@ -3640,7 +3640,7 @@ int btrfs_check_data_free_space(struct inode *inode, u64 bytes)
|
||||
struct btrfs_root *root = BTRFS_I(inode)->root;
|
||||
struct btrfs_fs_info *fs_info = root->fs_info;
|
||||
u64 used;
|
||||
int ret = 0, committed = 0, alloc_chunk = 1;
|
||||
int ret = 0, committed = 0;
|
||||
|
||||
/* make sure bytes are sectorsize aligned */
|
||||
bytes = ALIGN(bytes, root->sectorsize);
|
||||
@@ -3668,7 +3668,7 @@ again:
|
||||
* if we don't have enough free bytes in this space then we need
|
||||
* to alloc a new chunk.
|
||||
*/
|
||||
if (!data_sinfo->full && alloc_chunk) {
|
||||
if (!data_sinfo->full) {
|
||||
u64 alloc_target;
|
||||
|
||||
data_sinfo->force_alloc = CHUNK_ALLOC_FORCE;
|
||||
@@ -7216,7 +7216,7 @@ btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root,
|
||||
btrfs_set_header_generation(buf, trans->transid);
|
||||
btrfs_set_buffer_lockdep_class(root->root_key.objectid, buf, level);
|
||||
btrfs_tree_lock(buf);
|
||||
clean_tree_block(trans, root, buf);
|
||||
clean_tree_block(trans, root->fs_info, buf);
|
||||
clear_bit(EXTENT_BUFFER_STALE, &buf->bflags);
|
||||
|
||||
btrfs_set_lock_blocking(buf);
|
||||
@@ -7814,7 +7814,7 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
||||
bytenr = btrfs_node_blockptr(path->nodes[level], path->slots[level]);
|
||||
blocksize = root->nodesize;
|
||||
|
||||
next = btrfs_find_tree_block(root, bytenr);
|
||||
next = btrfs_find_tree_block(root->fs_info, bytenr);
|
||||
if (!next) {
|
||||
next = btrfs_find_create_tree_block(root, bytenr);
|
||||
if (!next)
|
||||
@@ -8015,7 +8015,7 @@ static noinline int walk_up_proc(struct btrfs_trans_handle *trans,
|
||||
btrfs_set_lock_blocking(eb);
|
||||
path->locks[level] = BTRFS_WRITE_LOCK_BLOCKING;
|
||||
}
|
||||
clean_tree_block(trans, root, eb);
|
||||
clean_tree_block(trans, root->fs_info, eb);
|
||||
}
|
||||
|
||||
if (eb == root->node) {
|
||||
|
||||
@@ -97,7 +97,7 @@ struct extent_io_tree {
|
||||
u64 dirty_bytes;
|
||||
int track_uptodate;
|
||||
spinlock_t lock;
|
||||
struct extent_io_ops *ops;
|
||||
const struct extent_io_ops *ops;
|
||||
};
|
||||
|
||||
struct extent_state {
|
||||
|
||||
@@ -553,7 +553,7 @@ static noinline void truncate_one_csum(struct btrfs_root *root,
|
||||
btrfs_truncate_item(root, path, new_size, 0);
|
||||
|
||||
key->offset = end_byte;
|
||||
btrfs_set_item_key_safe(root, path, key);
|
||||
btrfs_set_item_key_safe(root->fs_info, path, key);
|
||||
} else {
|
||||
BUG();
|
||||
}
|
||||
|
||||
+4
-4
@@ -864,7 +864,7 @@ next_slot:
|
||||
|
||||
memcpy(&new_key, &key, sizeof(new_key));
|
||||
new_key.offset = end;
|
||||
btrfs_set_item_key_safe(root, path, &new_key);
|
||||
btrfs_set_item_key_safe(root->fs_info, path, &new_key);
|
||||
|
||||
extent_offset += end - key.offset;
|
||||
btrfs_set_file_extent_offset(leaf, fi, extent_offset);
|
||||
@@ -1122,7 +1122,7 @@ again:
|
||||
ino, bytenr, orig_offset,
|
||||
&other_start, &other_end)) {
|
||||
new_key.offset = end;
|
||||
btrfs_set_item_key_safe(root, path, &new_key);
|
||||
btrfs_set_item_key_safe(root->fs_info, path, &new_key);
|
||||
fi = btrfs_item_ptr(leaf, path->slots[0],
|
||||
struct btrfs_file_extent_item);
|
||||
btrfs_set_file_extent_generation(leaf, fi,
|
||||
@@ -1156,7 +1156,7 @@ again:
|
||||
trans->transid);
|
||||
path->slots[0]++;
|
||||
new_key.offset = start;
|
||||
btrfs_set_item_key_safe(root, path, &new_key);
|
||||
btrfs_set_item_key_safe(root->fs_info, path, &new_key);
|
||||
|
||||
fi = btrfs_item_ptr(leaf, path->slots[0],
|
||||
struct btrfs_file_extent_item);
|
||||
@@ -2164,7 +2164,7 @@ static int fill_holes(struct btrfs_trans_handle *trans, struct inode *inode,
|
||||
u64 num_bytes;
|
||||
|
||||
key.offset = offset;
|
||||
btrfs_set_item_key_safe(root, path, &key);
|
||||
btrfs_set_item_key_safe(root->fs_info, path, &key);
|
||||
fi = btrfs_item_ptr(leaf, path->slots[0],
|
||||
struct btrfs_file_extent_item);
|
||||
num_bytes = btrfs_file_extent_num_bytes(leaf, fi) + end -
|
||||
|
||||
+1
-1
@@ -434,7 +434,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct btrfs_compress_op btrfs_lzo_compress = {
|
||||
const struct btrfs_compress_op btrfs_lzo_compress = {
|
||||
.alloc_workspace = lzo_alloc_workspace,
|
||||
.free_workspace = lzo_free_workspace,
|
||||
.compress_pages = lzo_compress_pages,
|
||||
|
||||
@@ -425,3 +425,5 @@ static const char *prop_compression_extract(struct inode *inode)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -982,7 +982,7 @@ int btrfs_quota_disable(struct btrfs_trans_handle *trans,
|
||||
list_del("a_root->dirty_list);
|
||||
|
||||
btrfs_tree_lock(quota_root->node);
|
||||
clean_tree_block(trans, tree_root, quota_root->node);
|
||||
clean_tree_block(trans, tree_root->fs_info, quota_root->node);
|
||||
btrfs_tree_unlock(quota_root->node);
|
||||
btrfs_free_tree_block(trans, quota_root, quota_root->node, 0, 1);
|
||||
|
||||
|
||||
+3
-10
@@ -237,12 +237,8 @@ int btrfs_alloc_stripe_hash_table(struct btrfs_fs_info *info)
|
||||
}
|
||||
|
||||
x = cmpxchg(&info->stripe_hash_table, NULL, table);
|
||||
if (x) {
|
||||
if (is_vmalloc_addr(x))
|
||||
vfree(x);
|
||||
else
|
||||
kfree(x);
|
||||
}
|
||||
if (x)
|
||||
kvfree(x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -453,10 +449,7 @@ void btrfs_free_stripe_hash_table(struct btrfs_fs_info *info)
|
||||
if (!info->stripe_hash_table)
|
||||
return;
|
||||
btrfs_clear_rbio_cache(info);
|
||||
if (is_vmalloc_addr(info->stripe_hash_table))
|
||||
vfree(info->stripe_hash_table);
|
||||
else
|
||||
kfree(info->stripe_hash_table);
|
||||
kvfree(info->stripe_hash_table);
|
||||
info->stripe_hash_table = NULL;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -3560,7 +3560,7 @@ static noinline_for_stack int scrub_workers_get(struct btrfs_fs_info *fs_info,
|
||||
int is_dev_replace)
|
||||
{
|
||||
int ret = 0;
|
||||
int flags = WQ_FREEZABLE | WQ_UNBOUND;
|
||||
unsigned int flags = WQ_FREEZABLE | WQ_UNBOUND;
|
||||
int max_active = fs_info->thread_pool_size;
|
||||
|
||||
if (fs_info->scrub_workers_refcnt == 0) {
|
||||
|
||||
+1
-1
@@ -459,7 +459,7 @@ static inline struct btrfs_fs_info *to_fs_info(struct kobject *kobj)
|
||||
static char btrfs_unknown_feature_names[3][NUM_FEATURE_BITS][13];
|
||||
static struct btrfs_feature_attr btrfs_feature_attrs[3][NUM_FEATURE_BITS];
|
||||
|
||||
static u64 supported_feature_masks[3] = {
|
||||
static const u64 supported_feature_masks[3] = {
|
||||
[FEAT_COMPAT] = BTRFS_FEATURE_COMPAT_SUPP,
|
||||
[FEAT_COMPAT_RO] = BTRFS_FEATURE_COMPAT_RO_SUPP,
|
||||
[FEAT_INCOMPAT] = BTRFS_FEATURE_INCOMPAT_SUPP,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user