aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Borisov <nborisov@suse.com>2017-02-20 06:50:58 -0500
committerDavid Sterba <dsterba@suse.com>2017-02-28 05:30:10 -0500
commit3d6ae7bb6a64b7dbc516863eeb99c3182d499aba (patch)
treee637d8591c9ba21ce40c9e72372a20b011b0de29
parent7ab7956ec3fc77667739d065748d96f87bff6c5d (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.c40
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 */
3273static int btrfs_orphan_del(struct btrfs_trans_handle *trans, 3273static 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 }