Commit 0f8939b8 authored by Nikolay Borisov's avatar Nikolay Borisov Committed by David Sterba

btrfs: Make btrfs_inode_in_log take btrfs_inode

Signed-off-by: default avatarNikolay Borisov <n.borisov.lkml@gmail.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 43663557
...@@ -255,16 +255,14 @@ static inline bool btrfs_is_free_space_inode(struct inode *inode) ...@@ -255,16 +255,14 @@ static inline bool btrfs_is_free_space_inode(struct inode *inode)
return false; return false;
} }
static inline int btrfs_inode_in_log(struct inode *inode, u64 generation) static inline int btrfs_inode_in_log(struct btrfs_inode *inode, u64 generation)
{ {
int ret = 0; int ret = 0;
spin_lock(&BTRFS_I(inode)->lock); spin_lock(&inode->lock);
if (BTRFS_I(inode)->logged_trans == generation && if (inode->logged_trans == generation &&
BTRFS_I(inode)->last_sub_trans <= inode->last_sub_trans <= inode->last_log_commit &&
BTRFS_I(inode)->last_log_commit && inode->last_sub_trans <= inode->root->last_log_commit) {
BTRFS_I(inode)->last_sub_trans <=
BTRFS_I(inode)->root->last_log_commit) {
/* /*
* After a ranged fsync we might have left some extent maps * After a ranged fsync we might have left some extent maps
* (that fall outside the fsync's range). So return false * (that fall outside the fsync's range). So return false
...@@ -272,10 +270,10 @@ static inline int btrfs_inode_in_log(struct inode *inode, u64 generation) ...@@ -272,10 +270,10 @@ static inline int btrfs_inode_in_log(struct inode *inode, u64 generation)
* will be called and process those extent maps. * will be called and process those extent maps.
*/ */
smp_mb(); smp_mb();
if (list_empty(&BTRFS_I(inode)->extent_tree.modified_extents)) if (list_empty(&inode->extent_tree.modified_extents))
ret = 1; ret = 1;
} }
spin_unlock(&BTRFS_I(inode)->lock); spin_unlock(&inode->lock);
return ret; return ret;
} }
......
...@@ -2062,7 +2062,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync) ...@@ -2062,7 +2062,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
* commit does not start nor waits for ordered extents to complete. * commit does not start nor waits for ordered extents to complete.
*/ */
smp_mb(); smp_mb();
if (btrfs_inode_in_log(inode, fs_info->generation) || if (btrfs_inode_in_log(BTRFS_I(inode), fs_info->generation) ||
(full_sync && BTRFS_I(inode)->last_trans <= (full_sync && BTRFS_I(inode)->last_trans <=
fs_info->last_trans_committed) || fs_info->last_trans_committed) ||
(!btrfs_have_ordered_extents_in_range(inode, start, len) && (!btrfs_have_ordered_extents_in_range(inode, start, len) &&
......
...@@ -9677,11 +9677,11 @@ static int btrfs_rename_exchange(struct inode *old_dir, ...@@ -9677,11 +9677,11 @@ static int btrfs_rename_exchange(struct inode *old_dir,
* allow the tasks to sync it. * allow the tasks to sync it.
*/ */
if (ret && (root_log_pinned || dest_log_pinned)) { if (ret && (root_log_pinned || dest_log_pinned)) {
if (btrfs_inode_in_log(old_dir, fs_info->generation) || if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
btrfs_inode_in_log(new_dir, fs_info->generation) || btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
btrfs_inode_in_log(old_inode, fs_info->generation) || btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
(new_inode && (new_inode &&
btrfs_inode_in_log(new_inode, fs_info->generation))) btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation)))
btrfs_set_log_full_commit(fs_info, trans); btrfs_set_log_full_commit(fs_info, trans);
if (root_log_pinned) { if (root_log_pinned) {
...@@ -9953,11 +9953,11 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -9953,11 +9953,11 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
* allow the tasks to sync it. * allow the tasks to sync it.
*/ */
if (ret && log_pinned) { if (ret && log_pinned) {
if (btrfs_inode_in_log(old_dir, fs_info->generation) || if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
btrfs_inode_in_log(new_dir, fs_info->generation) || btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
btrfs_inode_in_log(old_inode, fs_info->generation) || btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
(new_inode && (new_inode &&
btrfs_inode_in_log(new_inode, fs_info->generation))) btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation)))
btrfs_set_log_full_commit(fs_info, trans); btrfs_set_log_full_commit(fs_info, trans);
btrfs_end_log_trans(root); btrfs_end_log_trans(root);
......
...@@ -5237,7 +5237,7 @@ static int log_new_dir_dentries(struct btrfs_trans_handle *trans, ...@@ -5237,7 +5237,7 @@ static int log_new_dir_dentries(struct btrfs_trans_handle *trans,
goto next_dir_inode; goto next_dir_inode;
} }
if (btrfs_inode_in_log(di_inode, trans->transid)) { if (btrfs_inode_in_log(BTRFS_I(di_inode), trans->transid)) {
iput(di_inode); iput(di_inode);
break; break;
} }
...@@ -5436,7 +5436,7 @@ static int btrfs_log_inode_parent(struct btrfs_trans_handle *trans, ...@@ -5436,7 +5436,7 @@ static int btrfs_log_inode_parent(struct btrfs_trans_handle *trans,
if (ret) if (ret)
goto end_no_trans; goto end_no_trans;
if (btrfs_inode_in_log(inode, trans->transid)) { if (btrfs_inode_in_log(BTRFS_I(inode), trans->transid)) {
ret = BTRFS_NO_LOG_SYNC; ret = BTRFS_NO_LOG_SYNC;
goto end_no_trans; goto end_no_trans;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment