On Fri, 2009-01-30 at 15:11 +0900, Akira Fujita wrote: > Hi, > > I have rewritten ext4 online defrag patches based on the comments from Ted. > In the new defrag, create donor inode in the user space instead of kernel space, > and then allocate contiguous blocks to it with fallocate(). > In kernel space, exchange the blocks between target inode and donor inode, > and then copy the file data of target inode to donor inode every 64MB. > The EXT4_IOC_DEFRAG ioctl becomes simpler than the old one, > so it may be useful for other purposes. > One thing you'll want to handle is swap files. The swap code uses the bmap ioctl to make a mapping of extents in the files, and expects that mapping not to change. So, defragging a swap file will lead to some serious problems. Btrfs is currently getting around this by dropping bmap support, so swapfiles on btrfs won't work at all. A real long term solution is required ;) For ext4 you should be able to just detect swapfile and disallow the defrag on it. -chris -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html