kcopyd.c: kcopyd_put_pages() does not walk the entire list of specified pages (it stops at the second-to-last one). Thus, the nr_free_pages value is off by one. Fix this by incrementing nr_free_pages once more after the loop completes. [Kevin Corry] --- diff/drivers/md/kcopyd.c 2004-03-16 11:47:32.303849000 +0000 +++ source/drivers/md/kcopyd.c 2004-03-16 11:47:34.712482832 +0000 @@ -100,6 +100,7 @@ static void kcopyd_put_pages(struct kcop for (cursor = pl; cursor->next; cursor = cursor->next) kc->nr_free_pages++; + kc->nr_free_pages++; cursor->next = kc->pages; kc->pages = pl; spin_unlock(&kc->lock);