On Tue, Sep 09, 2008 at 07:46:47AM -0400, Christoph Hellwig wrote: > On Tue, Sep 09, 2008 at 02:42:22PM +0530, Aneesh Kumar K.V wrote: > > This patch adds new option, -E to chattr. The -E option > > is used to convert the ext3 format (non extent) file > > to ext4 (extent) format. This can be used to migrate > > the ext3 file system to ext4 file system. > > I think this is an awkware interfac. Chattr is supposed to set simple > binary flags and not a front end to complicated filesystem conversions. The alternate is to create an entire new program (e4migrate) just to trigger a single ioctl. The reality is this is probably going to more used by ext4 developers than anybody else, since it's rare that you would want to convert a single file from using indrect blocks to using extents. In general, most users/system administrators will want to convert the entire filesystem; eventually this will probably be done via some combination with the userspace program to trigger online defrag, but this was just a stopgap measure to allow us to more easily exercise the kernel code more than anything else. So given that this is only to enable extents on a single file, "chattr +e file" is very much in line with the rest of the chattr interface for setting other flags. One of the things which we may want to do to use statfs() and checking f_type to make sure the file in question is located on an ext2/3/4 filesystem before trying the ioctl, since it is true that a number of other filesystems have "borrowed" the chattr program and use it for their own purposes. It's unlikely that the ext4 migration ioctl will be wired to anything on other filesystems, but it would be a good safety measure to add just in case. Regards, - Ted -- 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