diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-05-26 00:10:04 +0200 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 23:10:02 +0200 |
commit | c4687a4a7536c3b2139faa63e66afd1d3da5bf15 (patch) | |
tree | f79218272fa1678dbce9404758c706093668da0f | |
parent | six locks: Delete redundant comment (diff) | |
download | linux-c4687a4a7536c3b2139faa63e66afd1d3da5bf15.tar.xz linux-c4687a4a7536c3b2139faa63e66afd1d3da5bf15.zip |
six locks: Fix an unitialized var
In the conversion to atomic_t, six_lock_slowpath() ended up calling
six_lock_wakeup() in the failure path with a state variable that was
never initialized - whoops.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/six.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/bcachefs/six.c b/fs/bcachefs/six.c index fa508ab2108c..9a5fcd7d3566 100644 --- a/fs/bcachefs/six.c +++ b/fs/bcachefs/six.c @@ -451,7 +451,6 @@ static int six_lock_slowpath(struct six_lock *lock, enum six_lock_type type, six_lock_should_sleep_fn should_sleep_fn, void *p, unsigned long ip) { - u32 old; int ret = 0; if (type == SIX_LOCK_write) { @@ -527,7 +526,7 @@ static int six_lock_slowpath(struct six_lock *lock, enum six_lock_type type, out: if (ret && type == SIX_LOCK_write) { six_clear_bitmask(lock, SIX_LOCK_HELD_write); - six_lock_wakeup(lock, old, SIX_LOCK_read); + six_lock_wakeup(lock, atomic_read(&lock->state), SIX_LOCK_read); } return ret; |