block_group->start, buf);
 }
 
+static const char *stage_to_string(int stage)
+{
+       if (stage == MOVE_DATA_EXTENTS)
+               return "move data extents";
+       if (stage == UPDATE_DATA_PTRS)
+               return "update data pointers";
+       return "unknown";
+}
+
 /*
  * function to relocate all extents in a block group.
  */
                                 rc->block_group->length);
 
        while (1) {
+               int finishes_stage;
+
                mutex_lock(&fs_info->cleaner_mutex);
                ret = relocate_block_group(rc);
                mutex_unlock(&fs_info->cleaner_mutex);
                if (ret < 0)
                        err = ret;
 
+               finishes_stage = rc->stage;
                /*
                 * We may have gotten ENOSPC after we already dirtied some
                 * extents.  If writeout happens while we're relocating a
                if (rc->extents_found == 0)
                        break;
 
-               btrfs_info(fs_info, "found %llu extents", rc->extents_found);
-
+               btrfs_info(fs_info, "found %llu extents, stage: %s",
+                          rc->extents_found, stage_to_string(finishes_stage));
        }
 
        WARN_ON(rc->block_group->pinned > 0);