On Wed, Dec 06, 2017 at 11:57:18AM -0500, Harish Kasiviswanathan wrote: > The first write after file create fails to take the direct IO > (Peer-to-Peer) path and falls back to slower software copy. The function > get_more_block() sets 'create' to 0 after comparing 'unsigned long > fs_startblk = 0' with 'long long (i_size_read(dio->inode) - 1) >> > i_blkbits = 0xfffffffffffff'. > > v2: Instead of casting to loff_t check explicitly if i_size > 0 > v3: Use cached dio->i_size instead of i_size_read() which isn't cheap on > 32-bit SMP > > Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@xxxxxxx> Reviewed-by: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>