summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Borisov <n.borisov.lkml@gmail.com>2017-01-17 17:31:30 -0500
committerDavid Sterba <dsterba@suse.com>2017-02-14 09:50:54 -0500
commit0f8939b8ac8623760c078d41282526de143ee623 (patch)
tree4e76f15f3fb3c81b84329badd48f460b3fd543f1
parent436635571bd0b4ba12ec81641667d85e7c29bad5 (diff)
btrfs: Make btrfs_inode_in_log take btrfs_inode
Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/btrfs_inode.h16
-rw-r--r--fs/btrfs/file.c2
-rw-r--r--fs/btrfs/inode.c16
-rw-r--r--fs/btrfs/tree-log.c4
4 files changed, 18 insertions, 20 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
index 4fed080545c6..b2dde0efebc0 100644
--- a/fs/btrfs/btrfs_inode.h
+++ b/fs/btrfs/btrfs_inode.h
@@ -255,16 +255,14 @@ static inline bool btrfs_is_free_space_inode(struct inode *inode)
255 return false; 255 return false;
256} 256}
257 257
258static inline int btrfs_inode_in_log(struct inode *inode, u64 generation) 258static inline int btrfs_inode_in_log(struct btrfs_inode *inode, u64 generation)
259{ 259{
260 int ret = 0; 260 int ret = 0;
261 261
262 spin_lock(&BTRFS_I(inode)->lock); 262 spin_lock(&inode->lock);
263 if (BTRFS_I(inode)->logged_trans == generation && 263 if (inode->logged_trans == generation &&
264 BTRFS_I(inode)->last_sub_trans <= 264 inode->last_sub_trans <= inode->last_log_commit &&
265 BTRFS_I(inode)->last_log_commit && 265 inode->last_sub_trans <= inode->root->last_log_commit) {
266 BTRFS_I(inode)->last_sub_trans <=
267 BTRFS_I(inode)->root->last_log_commit) {
268 /* 266 /*
269 * After a ranged fsync we might have left some extent maps 267 * After a ranged fsync we might have left some extent maps
270 * (that fall outside the fsync's range). So return false 268 * (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 * will be called and process those extent maps. 270 * will be called and process those extent maps.
273 */ 271 */
274 smp_mb(); 272 smp_mb();
275 if (list_empty(&BTRFS_I(inode)->extent_tree.modified_extents)) 273 if (list_empty(&inode->extent_tree.modified_extents))
276 ret = 1; 274 ret = 1;
277 } 275 }
278 spin_unlock(&BTRFS_I(inode)->lock); 276 spin_unlock(&inode->lock);
279 return ret; 277 return ret;
280} 278}
281 279
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 0d32f45cef28..149b79b3aaf8 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2062,7 +2062,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
2062 * commit does not start nor waits for ordered extents to complete. 2062 * commit does not start nor waits for ordered extents to complete.
2063 */ 2063 */
2064 smp_mb(); 2064 smp_mb();
2065 if (btrfs_inode_in_log(inode, fs_info->generation) || 2065 if (btrfs_inode_in_log(BTRFS_I(inode), fs_info->generation) ||
2066 (full_sync && BTRFS_I(inode)->last_trans <= 2066 (full_sync && BTRFS_I(inode)->last_trans <=
2067 fs_info->last_trans_committed) || 2067 fs_info->last_trans_committed) ||
2068 (!btrfs_have_ordered_extents_in_range(inode, start, len) && 2068 (!btrfs_have_ordered_extents_in_range(inode, start, len) &&
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 0455ee2d9c89..45134a1519a6 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -9677,11 +9677,11 @@ out_fail:
9677 * allow the tasks to sync it. 9677 * allow the tasks to sync it.
9678 */ 9678 */
9679 if (ret && (root_log_pinned || dest_log_pinned)) { 9679 if (ret && (root_log_pinned || dest_log_pinned)) {
9680 if (btrfs_inode_in_log(old_dir, fs_info->generation) || 9680 if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
9681 btrfs_inode_in_log(new_dir, fs_info->generation) || 9681 btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
9682 btrfs_inode_in_log(old_inode, fs_info->generation) || 9682 btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
9683 (new_inode && 9683 (new_inode &&
9684 btrfs_inode_in_log(new_inode, fs_info->generation))) 9684 btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation)))
9685 btrfs_set_log_full_commit(fs_info, trans); 9685 btrfs_set_log_full_commit(fs_info, trans);
9686 9686
9687 if (root_log_pinned) { 9687 if (root_log_pinned) {
@@ -9953,11 +9953,11 @@ out_fail:
9953 * allow the tasks to sync it. 9953 * allow the tasks to sync it.
9954 */ 9954 */
9955 if (ret && log_pinned) { 9955 if (ret && log_pinned) {
9956 if (btrfs_inode_in_log(old_dir, fs_info->generation) || 9956 if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
9957 btrfs_inode_in_log(new_dir, fs_info->generation) || 9957 btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
9958 btrfs_inode_in_log(old_inode, fs_info->generation) || 9958 btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
9959 (new_inode && 9959 (new_inode &&
9960 btrfs_inode_in_log(new_inode, fs_info->generation))) 9960 btrfs_inode_in_log(BTRFS_I(new_inode), fs_info->generation)))
9961 btrfs_set_log_full_commit(fs_info, trans); 9961 btrfs_set_log_full_commit(fs_info, trans);
9962 9962
9963 btrfs_end_log_trans(root); 9963 btrfs_end_log_trans(root);
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 581d31171683..37adad5dabd6 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -5237,7 +5237,7 @@ process_leaf:
5237 goto next_dir_inode; 5237 goto next_dir_inode;
5238 } 5238 }
5239 5239
5240 if (btrfs_inode_in_log(di_inode, trans->transid)) { 5240 if (btrfs_inode_in_log(BTRFS_I(di_inode), trans->transid)) {
5241 iput(di_inode); 5241 iput(di_inode);
5242 break; 5242 break;
5243 } 5243 }
@@ -5436,7 +5436,7 @@ static int btrfs_log_inode_parent(struct btrfs_trans_handle *trans,
5436 if (ret) 5436 if (ret)
5437 goto end_no_trans; 5437 goto end_no_trans;
5438 5438
5439 if (btrfs_inode_in_log(inode, trans->transid)) { 5439 if (btrfs_inode_in_log(BTRFS_I(inode), trans->transid)) {
5440 ret = BTRFS_NO_LOG_SYNC; 5440 ret = BTRFS_NO_LOG_SYNC;
5441 goto end_no_trans; 5441 goto end_no_trans;
5442 } 5442 }