Whamcloud - gitweb
Fixed minor typo in gen_copy_data().
[fs/lustre-release.git] / lustre / obdclass / genops.c
index 5c75ca5..bfc3499 100644 (file)
@@ -199,20 +199,25 @@ void lck_page(struct page *page)
                 ___wait_on_page(page);
 }
 
-int gen_copy_data(struct obd_conn *conn, obdattr *src, obdattr *tgt)
+/* XXX this should return errors correctly, so should migrate!!! */
+int gen_copy_data(struct obd_conn *conn, obdattr *tgt, obdattr *src)
 {
        struct page *page;
        unsigned long index = 0;
        int rc;
+       ENTRY;
 
+       CDEBUG(D_INODE, "src: ino %ld blocks %ld, size %Ld, dst: ino %ld\n", 
+              src->i_ino, src->i_blocks, src->i_size, tgt->i_ino);
        page = alloc_page(GFP_USER);
-       if ( !page ) 
+       if ( !page ) {
+               EXIT;
                return -ENOMEM;
-
+       }
        
        lck_page(page);
        
-       while (index < src->i_size / PAGE_SIZE) {
+       while (index < ((src->i_size + PAGE_SIZE - 1) >> PAGE_SHIFT)) {
                
                page->index = index;
                rc = OBP(conn->oc_dev, brw)(READ, conn, src, page, 0);
@@ -223,6 +228,8 @@ int gen_copy_data(struct obd_conn *conn, obdattr *src, obdattr *tgt)
                rc = OBP(conn->oc_dev,brw)(WRITE, conn, tgt, page, 1);
                if ( rc != PAGE_SIZE)
                        break;
+
+               CDEBUG(D_INODE, "Copied page %d ...\n", index);
                
                index ++;
        }
@@ -231,5 +238,6 @@ int gen_copy_data(struct obd_conn *conn, obdattr *src, obdattr *tgt)
        UnlockPage(page);
        __free_page(page);
 
+       EXIT;
        return 0;
 }