diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index e4a8bb83d556..51a4a3e17c6b 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -10033,7 +10033,7 @@ static void btrfs_encoded_read_endio(struct btrfs_bio *bbio) */ WRITE_ONCE(priv->status, bbio->bio.bi_status); } - if (!atomic_dec_return(&priv->pending)) + if (atomic_dec_and_test(&priv->pending)) wake_up(&priv->wait); bio_put(&bbio->bio); }