On Fri, Oct 17, 2014 at 05:25:34PM +0400, Dmitry Monakhov wrote: > It is rediculus practice to scan inode block by block, this technique > applicable only for old indirect files. This takes signifficant amount > of time for really large files. Let's reuse ext4_fiemap which already > traverse inode-tree in most optimal meaner. > > TESTCASE: > ftruncate64(fd, 0); > ftruncate64(fd, 1ULL << 40); > /* lseek will spin very long time */ > lseek64(fd, 0, SEEK_DATA); > lseek64(fd, 0, SEEK_HOLE); > > > Original report: https://lkml.org/lkml/2014/10/16/620 > > ################################## > BTW: Why do we need i_mutex here? > > Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> Note: this patch causes generic/285 to loop forever in inline-data mode. My guess is in the special case handling of inline data in ext4_fiemap not playing well with this change, but I haven't had a chance to look deeply into this yet. - 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