On Sun, 25 Aug 2019 22:06:34 -0500 "Gustavo A. R. Silva" <gustavo@xxxxxxxxxxxxxx> wrote: > Fix lock/unlock imbalance by unlocking *zhdr* before return. > > Addresses-Coverity-ID: 1452811 ("Missing unlock") > Fixes: d776aaa9895e ("mm/z3fold.c: fix race between migration and destruction") > Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx> > --- > mm/z3fold.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/z3fold.c b/mm/z3fold.c > index e31cd9bd4ed5..75b7962439ff 100644 > --- a/mm/z3fold.c > +++ b/mm/z3fold.c > @@ -1406,6 +1406,7 @@ static bool z3fold_page_isolate(struct page *page, isolate_mode_t mode) > * should freak out. > */ > WARN(1, "Z3fold is experiencing kref problems\n"); > + z3fold_page_unlock(zhdr); > return false; > } > z3fold_page_unlock(zhdr); Looks good, thanks. This is a bit silly: if (..) { ... z3fold_page_unlock(zhdr); return false; } z3fold_page_unlock(zhdr); return false; but presumably the compiler will clean up after us.