Despite my previous reviewed-by tag this will need another fix: xfs_file_iomap_begin needs to return EAGAIN if we don't have the extent list in memoery already. E.g. something like this:
if ((flags & IOMAP_NOWAIT) && !(ip->i_d.if_flags & XFS_IFEXTENTS)) {
error = -EAGAIN;
goto out_unlock;
}
right after locking the ilock.
