]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
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 3f2c5c05359e9b7490897c8f7202a82928f5c754..813d1d5e69273dffbf2883e3e0809c6429666a71 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;