Hi This is a simple patch that makes kcopyd accept zero-size jobs. It is needed for handling snapshot resizing in shared snapshots. Mikulas -- dm-kcopyd: accept zero-size jobs This patch changes dm-kcopyd so that it accepts zero-size jobs and completes them immediatelly via its completion thread. It is needed for multisnapshots snapshot resizing. When we are writing to a chunk beyond origin end, no copying is done. To simplify the code, we submit an empty request to kcopyd and let kcopyd complete it. If we didn't submit a request to kcopyd and called the completion routine immediatelly, it would violate the principle that completion is called only from one thread and it would need additional locking. Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> --- drivers/md/dm-kcopyd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6.31.5-fast/drivers/md/dm-kcopyd.c =================================================================== --- linux-2.6.31.5-fast.orig/drivers/md/dm-kcopyd.c 2009-11-02 01:21:49.000000000 +0100 +++ linux-2.6.31.5-fast/drivers/md/dm-kcopyd.c 2009-11-02 01:22:01.000000000 +0100 @@ -450,7 +450,10 @@ static void dispatch_job(struct kcopyd_j { struct dm_kcopyd_client *kc = job->kc; atomic_inc(&kc->nr_jobs); - push(&kc->pages_jobs, job); + if (unlikely(!job->source.count)) + push(&kc->complete_jobs, job); + else + push(&kc->pages_jobs, job); wake(kc); } -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel