On Monday 15 March 2004 9:12 am, Joe Thornber wrote: > http://people.sistina.com/~thornber/dm/patches/2.6-unstable/2.6.4/2.6.4-udm1.tar.bz2 > Revision 16: > kcopyd: stop using page->list 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. --- diff/drivers/md/kcopyd.c 2004-03-15 13:41:59.000000000 -0600 +++ source/drivers/md/kcopyd.c 2004-03-15 13:40:41.000000000 -0600 @@ -100,6 +100,7 @@ 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);