]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - block/blk-merge.c
block: fix accounting bug on cross partition merges
[mv-sheeva.git] / block / blk-merge.c
index 77b7c26df6b50fea7a38ba0825d91583f1c4031c..b06b83b89d896d304a76b0357f3044d783f386f6 100644 (file)
@@ -351,11 +351,12 @@ static void blk_account_io_merge(struct request *req)
                int cpu;
 
                cpu = part_stat_lock();
-               part = disk_map_sector_rcu(req->rq_disk, blk_rq_pos(req));
+               part = req->part;
 
                part_round_stats(cpu, part);
                part_dec_in_flight(part, rq_data_dir(req));
 
+               kref_put(&part->ref, __delete_partition);
                part_stat_unlock();
        }
 }