diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 8045e4ff270c..0a5404fe5bc5 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -812,7 +812,10 @@ int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned len, goto out; } ext4_write_lock_xattr(inode, &no_expand); - BUG_ON(!ext4_has_inline_data(inode)); + /* File may have been converted to block storage by concurrent path */ + if (!ext4_has_inline_data(inode)) { + return block_write_end(pos, len, copied, folio); + } /* * ei->i_inline_off may have changed since