OSDN Git Service

btrfs: scrub: simplify cleanup of wr_ctx in scrub_free_ctx
authorDavid Sterba <dsterba@suse.com>
Tue, 16 May 2017 17:10:29 +0000 (19:10 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2017 16:26:00 +0000 (18:26 +0200)
We don't need to take the mutex and zero out wr_cur_bio, as this is
called after the scrub finished.

Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/scrub.c

index c2d4f25..ffe785e 100644 (file)
@@ -639,11 +639,6 @@ static noinline_for_stack void scrub_free_ctx(struct scrub_ctx *sctx)
        if (!sctx)
                return;
 
-       mutex_lock(&sctx->wr_ctx.wr_lock);
-       kfree(sctx->wr_ctx.wr_curr_bio);
-       sctx->wr_ctx.wr_curr_bio = NULL;
-       mutex_unlock(&sctx->wr_ctx.wr_lock);
-
        /* this can happen when scrub is cancelled */
        if (sctx->curr != -1) {
                struct scrub_bio *sbio = sctx->bios[sctx->curr];
@@ -663,6 +658,7 @@ static noinline_for_stack void scrub_free_ctx(struct scrub_ctx *sctx)
                kfree(sbio);
        }
 
+       kfree(sctx->wr_ctx.wr_curr_bio);
        scrub_free_csums(sctx);
        kfree(sctx);
 }