--- a/mm/swapfile.c 2012-05-24 06:17:06.297437990 +0000 +++ b/mm/swapfile.c 2012-05-24 06:28:45.272471742 +0000 @@ -1753,28 +1753,34 @@ static int swap_show(struct seq_file *sw if (si == SEQ_START_TOKEN) { seq_puts(swap,"Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n"); - if (vx_flags(VXF_VIRT_MEM, 0)) { - struct sysinfo si; - - vx_vsi_swapinfo(&si); - if (si.totalswap < (1 << 10)) - return 0; - seq_printf(swap, "%s\t\t\t\t\t%s\t%lu\t%lu\t%d\n", - "hdv0", "partition", si.totalswap >> 10, - (si.totalswap - si.freeswap) >> 10, -1); - } return 0; } - file = si->swap_file; - len = seq_path(swap, &file->f_path, " \t\n\\"); - seq_printf(swap, "%*s%s\t%u\t%u\t%d\n", + if (vx_flags(VXF_VIRT_MEM, 0)) { + if(si->type != 0) { + return 0; + } + struct sysinfo sis; + + vx_vsi_swapinfo(&sis); + if (sis.totalswap < (1 << 10)) + return 0; + seq_printf(swap, "%s\t\t\t\t\t%s\t%lu\t%lu\t%d\n", + "hdv0", "partition", (sis.totalswap << 2) , + ((sis.totalswap - sis.freeswap) << 2) , -1); + } + else + { + file = si->swap_file; + len = seq_path(swap, &file->f_path, " \t\n\\"); + seq_printf(swap, "%*s%s\t%u\t%u\t%d\n", len < 40 ? 40 - len : 1, " ", S_ISBLK(file->f_path.dentry->d_inode->i_mode) ? "partition" : "file\t", si->pages << (PAGE_SHIFT - 10), si->inuse_pages << (PAGE_SHIFT - 10), si->prio); + } return 0; }