diff options
author | Nikolay Borisov <nborisov@suse.com> | 2017-02-20 06:50:58 -0500 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-02-28 05:30:10 -0500 |
commit | 3d6ae7bb6a64b7dbc516863eeb99c3182d499aba (patch) | |
tree | e637d8591c9ba21ce40c9e72372a20b011b0de29 | |
parent | 7ab7956ec3fc77667739d065748d96f87bff6c5d (diff) |
btrfs: make btrfs_orphan_del take btrfs_inode
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/inode.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 4805489984eb..ad93974f86a9 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -3271,20 +3271,20 @@ int btrfs_orphan_add(struct btrfs_trans_handle *trans, struct inode *inode) | |||
3271 | * item for this particular inode. | 3271 | * item for this particular inode. |
3272 | */ | 3272 | */ |
3273 | static int btrfs_orphan_del(struct btrfs_trans_handle *trans, | 3273 | static int btrfs_orphan_del(struct btrfs_trans_handle *trans, |
3274 | struct inode *inode) | 3274 | struct btrfs_inode *inode) |
3275 | { | 3275 | { |
3276 | struct btrfs_root *root = BTRFS_I(inode)->root; | 3276 | struct btrfs_root *root = inode->root; |
3277 | int delete_item = 0; | 3277 | int delete_item = 0; |
3278 | int release_rsv = 0; | 3278 | int release_rsv = 0; |
3279 | int ret = 0; | 3279 | int ret = 0; |
3280 | 3280 | ||
3281 | spin_lock(&root->orphan_lock); | 3281 | spin_lock(&root->orphan_lock); |
3282 | if (test_and_clear_bit(BTRFS_INODE_HAS_ORPHAN_ITEM, | 3282 | if (test_and_clear_bit(BTRFS_INODE_HAS_ORPHAN_ITEM, |
3283 | &BTRFS_I(inode)->runtime_flags)) | 3283 | &inode->runtime_flags)) |
3284 | delete_item = 1; | 3284 | delete_item = 1; |
3285 | 3285 | ||
3286 | if (test_and_clear_bit(BTRFS_INODE_ORPHAN_META_RESERVED, | 3286 | if (test_and_clear_bit(BTRFS_INODE_ORPHAN_META_RESERVED, |
3287 | &BTRFS_I(inode)->runtime_flags)) | 3287 | &inode->runtime_flags)) |
3288 | release_rsv = 1; | 3288 | release_rsv = 1; |
3289 | spin_unlock(&root->orphan_lock); | 3289 | spin_unlock(&root->orphan_lock); |
3290 | 3290 | ||
@@ -3292,11 +3292,11 @@ static int btrfs_orphan_del(struct btrfs_trans_handle *trans, | |||
3292 | atomic_dec(&root->orphan_inodes); | 3292 | atomic_dec(&root->orphan_inodes); |
3293 | if (trans) | 3293 | if (trans) |
3294 | ret = btrfs_del_orphan_item(trans, root, | 3294 | ret = btrfs_del_orphan_item(trans, root, |
3295 | btrfs_ino(BTRFS_I(inode))); | 3295 | btrfs_ino(inode)); |
3296 | } | 3296 | } |
3297 | 3297 | ||
3298 | if (release_rsv) | 3298 | if (release_rsv) |
3299 | btrfs_orphan_release_metadata(BTRFS_I(inode)); | 3299 | btrfs_orphan_release_metadata(inode); |
3300 | 3300 | ||
3301 | return ret; | 3301 | return ret; |
3302 | } | 3302 | } |
@@ -3467,7 +3467,7 @@ int btrfs_orphan_cleanup(struct btrfs_root *root) | |||
3467 | 3467 | ||
3468 | ret = btrfs_truncate(inode); | 3468 | ret = btrfs_truncate(inode); |
3469 | if (ret) | 3469 | if (ret) |
3470 | btrfs_orphan_del(NULL, inode); | 3470 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
3471 | } else { | 3471 | } else { |
3472 | nr_unlink++; | 3472 | nr_unlink++; |
3473 | } | 3473 | } |
@@ -5012,7 +5012,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr) | |||
5012 | /* To get a stable disk_i_size */ | 5012 | /* To get a stable disk_i_size */ |
5013 | err = btrfs_wait_ordered_range(inode, 0, (u64)-1); | 5013 | err = btrfs_wait_ordered_range(inode, 0, (u64)-1); |
5014 | if (err) { | 5014 | if (err) { |
5015 | btrfs_orphan_del(NULL, inode); | 5015 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5016 | return err; | 5016 | return err; |
5017 | } | 5017 | } |
5018 | 5018 | ||
@@ -5024,11 +5024,11 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr) | |||
5024 | */ | 5024 | */ |
5025 | trans = btrfs_join_transaction(root); | 5025 | trans = btrfs_join_transaction(root); |
5026 | if (IS_ERR(trans)) { | 5026 | if (IS_ERR(trans)) { |
5027 | btrfs_orphan_del(NULL, inode); | 5027 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5028 | return ret; | 5028 | return ret; |
5029 | } | 5029 | } |
5030 | i_size_write(inode, BTRFS_I(inode)->disk_i_size); | 5030 | i_size_write(inode, BTRFS_I(inode)->disk_i_size); |
5031 | err = btrfs_orphan_del(trans, inode); | 5031 | err = btrfs_orphan_del(trans, BTRFS_I(inode)); |
5032 | if (err) | 5032 | if (err) |
5033 | btrfs_abort_transaction(trans, err); | 5033 | btrfs_abort_transaction(trans, err); |
5034 | btrfs_end_transaction(trans); | 5034 | btrfs_end_transaction(trans); |
@@ -5190,7 +5190,7 @@ void btrfs_evict_inode(struct inode *inode) | |||
5190 | goto no_delete; | 5190 | goto no_delete; |
5191 | 5191 | ||
5192 | if (is_bad_inode(inode)) { | 5192 | if (is_bad_inode(inode)) { |
5193 | btrfs_orphan_del(NULL, inode); | 5193 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5194 | goto no_delete; | 5194 | goto no_delete; |
5195 | } | 5195 | } |
5196 | /* do we really want it for ->i_nlink > 0 and zero btrfs_root_refs? */ | 5196 | /* do we really want it for ->i_nlink > 0 and zero btrfs_root_refs? */ |
@@ -5213,13 +5213,13 @@ void btrfs_evict_inode(struct inode *inode) | |||
5213 | 5213 | ||
5214 | ret = btrfs_commit_inode_delayed_inode(BTRFS_I(inode)); | 5214 | ret = btrfs_commit_inode_delayed_inode(BTRFS_I(inode)); |
5215 | if (ret) { | 5215 | if (ret) { |
5216 | btrfs_orphan_del(NULL, inode); | 5216 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5217 | goto no_delete; | 5217 | goto no_delete; |
5218 | } | 5218 | } |
5219 | 5219 | ||
5220 | rsv = btrfs_alloc_block_rsv(fs_info, BTRFS_BLOCK_RSV_TEMP); | 5220 | rsv = btrfs_alloc_block_rsv(fs_info, BTRFS_BLOCK_RSV_TEMP); |
5221 | if (!rsv) { | 5221 | if (!rsv) { |
5222 | btrfs_orphan_del(NULL, inode); | 5222 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5223 | goto no_delete; | 5223 | goto no_delete; |
5224 | } | 5224 | } |
5225 | rsv->size = min_size; | 5225 | rsv->size = min_size; |
@@ -5261,14 +5261,14 @@ void btrfs_evict_inode(struct inode *inode) | |||
5261 | btrfs_warn(fs_info, | 5261 | btrfs_warn(fs_info, |
5262 | "Could not get space for a delete, will truncate on mount %d", | 5262 | "Could not get space for a delete, will truncate on mount %d", |
5263 | ret); | 5263 | ret); |
5264 | btrfs_orphan_del(NULL, inode); | 5264 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5265 | btrfs_free_block_rsv(fs_info, rsv); | 5265 | btrfs_free_block_rsv(fs_info, rsv); |
5266 | goto no_delete; | 5266 | goto no_delete; |
5267 | } | 5267 | } |
5268 | 5268 | ||
5269 | trans = btrfs_join_transaction(root); | 5269 | trans = btrfs_join_transaction(root); |
5270 | if (IS_ERR(trans)) { | 5270 | if (IS_ERR(trans)) { |
5271 | btrfs_orphan_del(NULL, inode); | 5271 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5272 | btrfs_free_block_rsv(fs_info, rsv); | 5272 | btrfs_free_block_rsv(fs_info, rsv); |
5273 | goto no_delete; | 5273 | goto no_delete; |
5274 | } | 5274 | } |
@@ -5294,7 +5294,7 @@ void btrfs_evict_inode(struct inode *inode) | |||
5294 | if (ret) { | 5294 | if (ret) { |
5295 | ret = btrfs_commit_transaction(trans); | 5295 | ret = btrfs_commit_transaction(trans); |
5296 | if (ret) { | 5296 | if (ret) { |
5297 | btrfs_orphan_del(NULL, inode); | 5297 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5298 | btrfs_free_block_rsv(fs_info, rsv); | 5298 | btrfs_free_block_rsv(fs_info, rsv); |
5299 | goto no_delete; | 5299 | goto no_delete; |
5300 | } | 5300 | } |
@@ -5323,9 +5323,9 @@ void btrfs_evict_inode(struct inode *inode) | |||
5323 | */ | 5323 | */ |
5324 | if (ret == 0) { | 5324 | if (ret == 0) { |
5325 | trans->block_rsv = root->orphan_block_rsv; | 5325 | trans->block_rsv = root->orphan_block_rsv; |
5326 | btrfs_orphan_del(trans, inode); | 5326 | btrfs_orphan_del(trans, BTRFS_I(inode)); |
5327 | } else { | 5327 | } else { |
5328 | btrfs_orphan_del(NULL, inode); | 5328 | btrfs_orphan_del(NULL, BTRFS_I(inode)); |
5329 | } | 5329 | } |
5330 | 5330 | ||
5331 | trans->block_rsv = &fs_info->trans_block_rsv; | 5331 | trans->block_rsv = &fs_info->trans_block_rsv; |
@@ -6534,7 +6534,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir, | |||
6534 | * If new hard link count is 1, it's a file created | 6534 | * If new hard link count is 1, it's a file created |
6535 | * with open(2) O_TMPFILE flag. | 6535 | * with open(2) O_TMPFILE flag. |
6536 | */ | 6536 | */ |
6537 | err = btrfs_orphan_del(trans, inode); | 6537 | err = btrfs_orphan_del(trans, BTRFS_I(inode)); |
6538 | if (err) | 6538 | if (err) |
6539 | goto fail; | 6539 | goto fail; |
6540 | } | 6540 | } |
@@ -9167,7 +9167,7 @@ static int btrfs_truncate(struct inode *inode) | |||
9167 | 9167 | ||
9168 | if (ret == 0 && inode->i_nlink > 0) { | 9168 | if (ret == 0 && inode->i_nlink > 0) { |
9169 | trans->block_rsv = root->orphan_block_rsv; | 9169 | trans->block_rsv = root->orphan_block_rsv; |
9170 | ret = btrfs_orphan_del(trans, inode); | 9170 | ret = btrfs_orphan_del(trans, BTRFS_I(inode)); |
9171 | if (ret) | 9171 | if (ret) |
9172 | err = ret; | 9172 | err = ret; |
9173 | } | 9173 | } |