Commit e4e42881 authored by Nikolay Borisov's avatar Nikolay Borisov Committed by David Sterba
Browse files

btrfs: remove redundant time check in transaction kthread loop



The value obtained from ktime_get_seconds() is guaranteed to be
monotonically increasing since it's taken from CLOCK_MONOTONIC. As
transaction_kthread obtains a reference to the currently running
transaction under holding btrfs_fs_info::trans_lock it's guaranteed to:

a) see an initialized 'cur', whose start_time is guaranteed to be smaller
   than 'now'

or

b) not obtain a 'cur' and simply go to sleep.

Given this remove the unnecessary check, if it sees
now < cur->start_time this would imply there are far greater problems on
the machine.

Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent ba1bc00f
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1792,8 +1792,7 @@ static int transaction_kthread(void *arg)

		now = ktime_get_seconds();
		if (cur->state < TRANS_STATE_COMMIT_START &&
		    (now < cur->start_time ||
		     now - cur->start_time < fs_info->commit_interval)) {
		    now - cur->start_time < fs_info->commit_interval) {
			spin_unlock(&fs_info->trans_lock);
			delay = msecs_to_jiffies(5000);
			goto sleep;