On Thu, Sep 14, 2017 at 11:50:46AM +0200, Andreas Gruenbacher wrote: > +int ext4_inline_data_iomap(struct inode *inode, struct iomap *iomap) > +{ > + __u64 addr; > + int error = -EAGAIN; > + struct ext4_iloc iloc; > + > + down_read(&EXT4_I(inode)->xattr_sem); > + if (!ext4_has_inline_data(inode)) > + goto out; .... > +out: > + up_read(&EXT4_I(inode)->xattr_sem); > + return error; > +} If we race with the inline data flag getting cleared, ext4_iomap_begin() will return with -EAGAIN. As near as I can tell, this will get reflected all the way up to userspace, instead of having the retry happen in the kernel. Is this intentional? It looks like a user visible change, no? - Ted