btrfs: record delta directly in transaction_kthread
authorNikolay Borisov <nborisov@suse.com>
Thu, 8 Oct 2020 12:24:29 +0000 (15:24 +0300)
committerDavid Sterba <dsterba@suse.com>
Tue, 8 Dec 2020 14:53:36 +0000 (15:53 +0100)
Rename 'now' to 'delta' and store there the delta between transaction
start time and current time. This is in preparation for optimising the
sleep logic in the next patch. No functional changes.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/disk-io.c

index 3f2c5c0..813d1d5 100644 (file)
@@ -1774,7 +1774,7 @@ static int transaction_kthread(void *arg)
        struct btrfs_trans_handle *trans;
        struct btrfs_transaction *cur;
        u64 transid;
-       time64_t now;
+       time64_t delta;
        unsigned long delay;
        bool cannot_commit;
 
@@ -1790,9 +1790,9 @@ static int transaction_kthread(void *arg)
                        goto sleep;
                }
 
-               now = ktime_get_seconds();
+               delta = ktime_get_seconds() - cur->start_time;
                if (cur->state < TRANS_STATE_COMMIT_START &&
-                   now - cur->start_time < fs_info->commit_interval) {
+                   delta < fs_info->commit_interval) {
                        spin_unlock(&fs_info->trans_lock);
                        delay = msecs_to_jiffies(5000);
                        goto sleep;