Commit c52cc7b7 authored by Josef Bacik's avatar Josef Bacik Committed by David Sterba

btrfs: add a BTRFS_FS_NEED_TRANS_COMMIT flag

Currently we are only using fs_info->pending_changes to indicate that we
need a transaction commit.  The original users for this were removed
years ago and we don't have more usage in sight, so this is the only
remaining reason to have this field.  Add a flag so we can remove this
code.
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 7966a6b5
...@@ -90,6 +90,9 @@ enum { ...@@ -90,6 +90,9 @@ enum {
/* Indicate we have to finish a zone to do next allocation. */ /* Indicate we have to finish a zone to do next allocation. */
BTRFS_FS_NEED_ZONE_FINISH, BTRFS_FS_NEED_ZONE_FINISH,
/* Indicate that we want to commit the transaction. */
BTRFS_FS_NEED_TRANS_COMMIT,
#if BITS_PER_LONG == 32 #if BITS_PER_LONG == 32
/* Indicate if we have error/warn message printed on 32bit systems */ /* Indicate if we have error/warn message printed on 32bit systems */
BTRFS_FS_32BIT_ERROR, BTRFS_FS_32BIT_ERROR,
......
...@@ -1535,7 +1535,8 @@ int btrfs_sync_fs(struct super_block *sb, int wait) ...@@ -1535,7 +1535,8 @@ int btrfs_sync_fs(struct super_block *sb, int wait)
* Exit unless we have some pending changes * Exit unless we have some pending changes
* that need to go through commit * that need to go through commit
*/ */
if (fs_info->pending_changes == 0) if (!test_bit(BTRFS_FS_NEED_TRANS_COMMIT,
&fs_info->flags))
return 0; return 0;
/* /*
* A non-blocking test if the fs is frozen. We must not * A non-blocking test if the fs is frozen. We must not
......
...@@ -249,7 +249,7 @@ static ssize_t btrfs_feature_attr_store(struct kobject *kobj, ...@@ -249,7 +249,7 @@ static ssize_t btrfs_feature_attr_store(struct kobject *kobj,
/* /*
* We don't want to do full transaction commit from inside sysfs * We don't want to do full transaction commit from inside sysfs
*/ */
btrfs_set_pending(fs_info, COMMIT); set_bit(BTRFS_FS_NEED_TRANS_COMMIT, &fs_info->flags);
wake_up_process(fs_info->transaction_kthread); wake_up_process(fs_info->transaction_kthread);
return count; return count;
...@@ -960,7 +960,7 @@ static ssize_t btrfs_label_store(struct kobject *kobj, ...@@ -960,7 +960,7 @@ static ssize_t btrfs_label_store(struct kobject *kobj,
/* /*
* We don't want to do full transaction commit from inside sysfs * We don't want to do full transaction commit from inside sysfs
*/ */
btrfs_set_pending(fs_info, COMMIT); set_bit(BTRFS_FS_NEED_TRANS_COMMIT, &fs_info->flags);
wake_up_process(fs_info->transaction_kthread); wake_up_process(fs_info->transaction_kthread);
return len; return len;
......
...@@ -2104,6 +2104,8 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans) ...@@ -2104,6 +2104,8 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans)
ASSERT(refcount_read(&trans->use_count) == 1); ASSERT(refcount_read(&trans->use_count) == 1);
btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START); btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START);
clear_bit(BTRFS_FS_NEED_TRANS_COMMIT, &fs_info->flags);
/* Stop the commit early if ->aborted is set */ /* Stop the commit early if ->aborted is set */
if (TRANS_ABORTED(cur_trans)) { if (TRANS_ABORTED(cur_trans)) {
ret = cur_trans->aborted; ret = cur_trans->aborted;
......
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