All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <n.borisov.lkml@gmail.com>
To: dsterba@suse.cz
Cc: linux-btrfs@vger.kernel.org, Nikolay Borisov <n.borisov.lkml@gmail.com>
Subject: [PATCHv2 04/24] btrfs: Make btrfs_inode_in_log take btrfs_inode
Date: Wed, 18 Jan 2017 00:31:30 +0200	[thread overview]
Message-ID: <1484692310-3987-5-git-send-email-n.borisov.lkml@gmail.com> (raw)
In-Reply-To: <1484692310-3987-1-git-send-email-n.borisov.lkml@gmail.com>

Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
---
 fs/btrfs/btrfs_inode.h | 16 +++++++---------
 fs/btrfs/file.c        |  2 +-
 fs/btrfs/inode.c       | 16 ++++++++--------
 fs/btrfs/tree-log.c    |  4 ++--
 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)
 	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;
 
-	spin_lock(&BTRFS_I(inode)->lock);
-	if (BTRFS_I(inode)->logged_trans == generation &&
-	    BTRFS_I(inode)->last_sub_trans <=
-	    BTRFS_I(inode)->last_log_commit &&
-	    BTRFS_I(inode)->last_sub_trans <=
-	    BTRFS_I(inode)->root->last_log_commit) {
+	spin_lock(&inode->lock);
+	if (inode->logged_trans == generation &&
+	    inode->last_sub_trans <= inode->last_log_commit &&
+	    inode->last_sub_trans <= inode->root->last_log_commit) {
 		/*
 		 * After a ranged fsync we might have left some extent maps
 		 * (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)
 		 * will be called and process those extent maps.
 		 */
 		smp_mb();
-		if (list_empty(&BTRFS_I(inode)->extent_tree.modified_extents))
+		if (list_empty(&inode->extent_tree.modified_extents))
 			ret = 1;
 	}
-	spin_unlock(&BTRFS_I(inode)->lock);
+	spin_unlock(&inode->lock);
 	return ret;
 }
 
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)
 	 * commit does not start nor waits for ordered extents to complete.
 	 */
 	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 <=
 	     fs_info->last_trans_committed) ||
 	    (!btrfs_have_ordered_extents_in_range(inode, start, len) &&
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index a8374f1d8c61..9442c80fe551 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -9683,11 +9683,11 @@ static int btrfs_rename_exchange(struct inode *old_dir,
 	 * allow the tasks to sync it.
 	 */
 	if (ret && (root_log_pinned || dest_log_pinned)) {
-		if (btrfs_inode_in_log(old_dir, fs_info->generation) ||
-		    btrfs_inode_in_log(new_dir, fs_info->generation) ||
-		    btrfs_inode_in_log(old_inode, fs_info->generation) ||
+		if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
+		    btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
+		    btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
 		    (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);
 
 		if (root_log_pinned) {
@@ -9959,11 +9959,11 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
 	 * allow the tasks to sync it.
 	 */
 	if (ret && log_pinned) {
-		if (btrfs_inode_in_log(old_dir, fs_info->generation) ||
-		    btrfs_inode_in_log(new_dir, fs_info->generation) ||
-		    btrfs_inode_in_log(old_inode, fs_info->generation) ||
+		if (btrfs_inode_in_log(BTRFS_I(old_dir), fs_info->generation) ||
+		    btrfs_inode_in_log(BTRFS_I(new_dir), fs_info->generation) ||
+		    btrfs_inode_in_log(BTRFS_I(old_inode), fs_info->generation) ||
 		    (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_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 @@ static int log_new_dir_dentries(struct btrfs_trans_handle *trans,
 				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);
 				break;
 			}
@@ -5436,7 +5436,7 @@ static int btrfs_log_inode_parent(struct btrfs_trans_handle *trans,
 	if (ret)
 		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;
 		goto end_no_trans;
 	}
-- 
2.7.4


  parent reply	other threads:[~2017-01-17 22:41 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-12 14:00 [PATCH 00/24] tree-log inode vs btrfs_inode cleanups Nikolay Borisov
2017-01-12 14:00 ` [PATCH 01/24] btrfs: Make btrfs_must_commit_transaction take btrfs_inode Nikolay Borisov
2017-01-12 14:00 ` [PATCH 02/24] btrfs: Make btrfs_record_unlink_dir " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 03/24] btrfs: Make btrfs_record_snapshot_destroy " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 04/24] btrfs: Make btrfs_inode_in_log " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 05/24] btrfs: Make btrfs_log_new_name " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 06/24] btrfs: Make btrfs_del_dir_entries_in_log " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 07/24] btrfs: Make btrfs_del_inode_ref " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 08/24] btrfs: Make logged_inode_size " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 09/24] btrfs: Make btrfs_check_ref_name_override " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 10/24] btrfs: Make copy_items " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 11/24] btrfs: Make btrfs_log_all_xattrs " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 12/24] btrfs: Make btrfs_log_trailing_hole " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 13/24] btrfs: Make btrfs_get_logged_extents " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 14/24] btrfs: Make btrfs_log_changed_extents " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 15/24] btrfs: Make log_dir_items " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 16/24] btrfs: Make log_directory_changes " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 17/24] btrfs: Make log_new_dir_dentries " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 18/24] btrfs: Make btrfs_unlink_inode " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 19/24] btrfs: Make drop_one_dir_item " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 20/24] btrfs: Make __add_inode_ref " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 21/24] btrfs: Make log_inode_item " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 22/24] btrfs: Make btrfs_log_inode " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 23/24] btrfs: Make count_inode_extrefs " Nikolay Borisov
2017-01-12 14:00 ` [PATCH 24/24] btrfs: Make count_inode_refs " Nikolay Borisov
2017-01-17 16:15 ` [PATCH 00/24] tree-log inode vs btrfs_inode cleanups David Sterba
2017-01-17 22:31   ` [PATCHv2 " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 01/24] btrfs: Make btrfs_must_commit_transaction take btrfs_inode Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 02/24] btrfs: Make btrfs_record_unlink_dir " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 03/24] btrfs: Make btrfs_record_snapshot_destroy " Nikolay Borisov
2017-01-17 22:31     ` Nikolay Borisov [this message]
2017-01-17 22:31     ` [PATCHv2 05/24] btrfs: Make btrfs_log_new_name " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 06/24] btrfs: Make btrfs_del_dir_entries_in_log " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 07/24] btrfs: Make btrfs_del_inode_ref " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 08/24] btrfs: Make logged_inode_size " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 09/24] btrfs: Make btrfs_check_ref_name_override " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 10/24] btrfs: Make copy_items " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 11/24] btrfs: Make btrfs_log_all_xattrs " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 12/24] btrfs: Make btrfs_log_trailing_hole " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 13/24] btrfs: Make btrfs_get_logged_extents " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 14/24] btrfs: Make btrfs_log_changed_extents " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 15/24] btrfs: Make log_dir_items " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 16/24] btrfs: Make log_directory_changes " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 17/24] btrfs: Make log_new_dir_dentries " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 18/24] btrfs: Make btrfs_unlink_inode " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 19/24] btrfs: Make drop_one_dir_item " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 20/24] btrfs: Make __add_inode_ref " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 21/24] btrfs: Make log_inode_item " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 22/24] btrfs: Make btrfs_log_inode " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 23/24] btrfs: Make count_inode_extrefs " Nikolay Borisov
2017-01-17 22:31     ` [PATCHv2 24/24] btrfs: Make count_inode_refs " Nikolay Borisov
2017-01-19 18:21     ` [PATCHv2 00/24] tree-log inode vs btrfs_inode cleanups David Sterba
2017-01-20  7:22       ` Nikolay Borisov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1484692310-3987-5-git-send-email-n.borisov.lkml@gmail.com \
    --to=n.borisov.lkml@gmail.com \
    --cc=dsterba@suse.cz \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.