From ff40aa1c5cf8755155fd7146f7c6ceab9ceda733 Mon Sep 17 00:00:00 2001 From: Alasdair G Kergon Date: Thu, 31 Jan 2013 14:23:36 +0000 Subject: [PATCH] --- yaml --- r: 349461 b: refs/heads/master c: fe7af2d3babefabd96a39e8b0d58ede88f3c7993 h: refs/heads/master i: 349459: ad66b2ed845f0dcf6681dadb5ec2e72269905012 v: v3 --- [refs] | 2 +- trunk/drivers/md/dm.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index def959a2243c..87644b9d8124 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0f640dca08330dfc7820d610578e5935b5e654b2 +refs/heads/master: fe7af2d3babefabd96a39e8b0d58ede88f3c7993 diff --git a/trunk/drivers/md/dm.c b/trunk/drivers/md/dm.c index c72e4d5a9617..314a0e2faf79 100644 --- a/trunk/drivers/md/dm.c +++ b/trunk/drivers/md/dm.c @@ -1188,6 +1188,7 @@ static int __clone_and_map_changing_extent_only(struct clone_info *ci, { struct dm_target *ti; sector_t len; + unsigned num_requests; do { ti = dm_table_find_target(ci->map, ci->sector); @@ -1200,7 +1201,8 @@ static int __clone_and_map_changing_extent_only(struct clone_info *ci, * reconfiguration might also have changed that since the * check was performed. */ - if (!get_num_requests || !get_num_requests(ti)) + num_requests = get_num_requests ? get_num_requests(ti) : 0; + if (!num_requests) return -EOPNOTSUPP; if (is_split_required && !is_split_required(ti)) @@ -1208,7 +1210,7 @@ static int __clone_and_map_changing_extent_only(struct clone_info *ci, else len = min(ci->sector_count, max_io_len(ci->sector, ti)); - __issue_target_requests(ci, ti, ti->num_discard_requests, len); + __issue_target_requests(ci, ti, num_requests, len); ci->sector += len; } while (ci->sector_count -= len);