On 2012-07-19, at 7:51 AM, Wang Sheng-Hui wrote: > I have one question about ext4_fallocate: > For its parameters, offset & len, it will preallocate > one space with length >= len, right? > > From the code: > map.m_lblk = offset >> blkbits; > /* > * We can't just convert len to max_blocks because > * If blocksize = 4096 offset = 3072 and len = 2048 > */ > max_blocks = (EXT4_BLOCK_ALIGN(len + offset, blkbits) >> blkbits) > - map.m_lblk; > > We can see that the target space is enlarged to the (floor, ceiling) of > (offset, offset+len). Right? > > If I'm wrong, please correct me. A whole block has to be allocated for fallocate, but if KEEP_SIZE is not used, the i_size should be changed to match the actual requested size. Cheers, Andreas -- 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