diff --git a/[refs] b/[refs] index 7b95356eb91b..9e18631cfa37 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8215d6ec5fee1e76545decea2cd73717efb5cb42 +refs/heads/master: a97f925a32aad2a37971d7bfb657006acf04e42d diff --git a/trunk/drivers/md/dm.c b/trunk/drivers/md/dm.c index 21222f5193fb..7199846364e9 100644 --- a/trunk/drivers/md/dm.c +++ b/trunk/drivers/md/dm.c @@ -635,8 +635,10 @@ static void dec_pending(struct dm_io *io, int error) if (!md->barrier_error && io_error != -EOPNOTSUPP) md->barrier_error = io_error; end_io_acct(io); + free_io(md, io); } else { end_io_acct(io); + free_io(md, io); if (io_error != DM_ENDIO_REQUEUE) { trace_block_bio_complete(md->queue, bio); @@ -644,8 +646,6 @@ static void dec_pending(struct dm_io *io, int error) bio_endio(bio, io_error); } } - - free_io(md, io); } }