+ if (!cfs_list_empty(&pc.pc_pages)) {
+ int i;
+
+ printk(CFS_KERN_ALERT "Lustre: trace pages aren't "
+ " empty\n");
+ printk(CFS_KERN_ERR "total cpus(%d): ",
+ cfs_num_possible_cpus());
+ for (i = 0; i < cfs_num_possible_cpus(); i++)
+ if (cfs_cpu_online(i))
+ printk(CFS_KERN_ERR "%d(on) ", i);
+ else
+ printk(CFS_KERN_ERR "%d(off) ", i);
+ printk(CFS_KERN_ERR "\n");
+
+ i = 0;
+ cfs_list_for_each_entry_safe(tage, tmp, &pc.pc_pages,
+ linkage)
+ printk(CFS_KERN_ERR "page %d belongs to cpu "
+ "%d\n", ++i, tage->cpu);
+ printk(CFS_KERN_ERR "There are %d pages unwritten\n",
+ i);
+ }
+ __LASSERT(cfs_list_empty(&pc.pc_pages));
+end_loop:
+ if (cfs_atomic_read(&tctl->tctl_shutdown)) {
+ if (last_loop == 0) {
+ last_loop = 1;
+ continue;
+ } else {
+ break;
+ }
+ }
+ cfs_waitlink_init(&__wait);
+ cfs_waitq_add(&tctl->tctl_waitq, &__wait);
+ cfs_set_current_state(CFS_TASK_INTERRUPTIBLE);
+ cfs_waitq_timedwait(&__wait, CFS_TASK_INTERRUPTIBLE,
+ cfs_time_seconds(1));
+ cfs_waitq_del(&tctl->tctl_waitq, &__wait);