On Tue, Jan 16, 2007 at 12:21:34PM -0700, Andreas Dilger wrote: > On Jan 16, 2007 21:03 +0900, sho@xxxxxxxxxxxxxx wrote: > > 2. The new entry "goal" is added on ext4_ext_defrag_data structure > > which is passed to existing ioctl(EXT4_IOC_DEFRAG) > > as the argument. The kernel starts searching the free blocks > > from "goal". The command passes the physical block number > > gotten in the above step(1) to the ioctl. > > > > struct ext4_ext_defrag_data { > > loff_t start_offset; /* start offset to defrag in byte */ > > loff_t defrag_size; /* size of defrag in bytes */ > > ext4_fsblk_t goal; /* block offset for allocation */ > > }; > > Two things of note: > - presumably the start_offset and defrag_size should be multiples of the > filesystem blocksize? If they are not, is it an error or are they > adjusted to cover whole blocks? In fact, why aren't the units in blocks? THe filesystem isn't really going to deal with anything smaller, is it? Joel -- Life's Little Instruction Book #335 "Every so often, push your luck." Joel Becker Principal Software Developer Oracle E-mail: joel.becker@xxxxxxxxxx Phone: (650) 506-8127 - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html