X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fobdclass%2Fgenops.c;h=929dc886a9c56eeb4652f2d5f561d1a9a88f490a;hp=06992c15b164c7c3dd7178e8334725a5bc750a23;hb=906f38ee0bc23a1b153fde2e9bf1063ccb0f40c9;hpb=f94ced5f79da783e38717813a58716906d0269f2;ds=sidebyside diff --git a/lustre/obdclass/genops.c b/lustre/obdclass/genops.c index 06992c1..929dc88 100644 --- a/lustre/obdclass/genops.c +++ b/lustre/obdclass/genops.c @@ -202,19 +202,19 @@ void lck_page(struct page *page) int gen_copy_data(struct obd_conn *conn, obdattr *src, obdattr *tgt) { struct page *page; - unsigned long offset = 0; + unsigned long index = 0; int rc; - page = __get_pages(GFP_USER, 0); + page = alloc_page(GFP_USER); if ( !page ) return -ENOMEM; lck_page(page); - while (offset < src->i_size) { + while (index < ((src->i_size + PAGE_SIZE - 1) >> PAGE_SHIFT)) { - page->offset = offset; + page->index = index; rc = OBP(conn->oc_dev, brw)(READ, conn, src, page, 0); if ( rc != PAGE_SIZE ) @@ -224,7 +224,7 @@ int gen_copy_data(struct obd_conn *conn, obdattr *src, obdattr *tgt) if ( rc != PAGE_SIZE) break; - offset += rc; + index ++; } tgt->i_size = src->i_size; tgt->i_blocks = src->i_blocks;