On Oct 8, 2020, at 1:12 PM, Josh Triplett wrote: > > On Wed, Oct 07, 2020 at 08:57:12PM -0600, Andreas Dilger wrote: >> On Oct 7, 2020, at 2:14 PM, Josh Triplett wrote: >>> If those aren't the right way to express that, I could potentially >>> adapt. I had a similar such conversation on linux-ext4 already (about >>> inline data with 128-bit inodes), which led to me choosing to abandon >>> 128-byte inodes rather than try to get ext4 to support what I wanted >>> with them, because I didn't want to be disruptive to ext4 for a niche >>> use case. In the particular case that motivated this thread, what I was >>> doing already worked in previous kernels, and it seemed reasonable to >>> ask for it to continue to work in new kernels, while preserving the >>> newly added checks in the new kernels. >> >> This was discussed in the "Inline data with 128-byte inodes?" thread >> back in May. While Jan was not necessarily in favour of this, I was >> actually OK with improving the ext4 code to handle this case better, >> since it would (at minimum) clean up ext4 to make a clear separation >> of how it is detecting data in the i_block[] array and the system.data >> xattr, and I don't think it added any complexity to the code. >> >> I even posted a WIP patch to that effect, but didn't get a response back: >> https://marc.info/?l=linux-ext4&m=158863275019187 > > My apologies, I thought I responded to that. It looks promising to me, > though I wouldn't have the bandwidth to take it to completion anytime > soon. NP, I don't have bandwidth to work on it right now either. >> I *do* think that inline_data is an under-appreciated feature that I >> would be happy to see some improvements with. I don't think that small >> files are a niche use case, and if we can clean up the inline_data code >> to work with 128-byte inodes I'm not against that, even though I'm not >> going to use that combination of features myself. > > I'd love to see that happen. At the time, it seemed like too large of a > change to block on, which is why I ended up deciding to switch to > 256-byte inodes. Does that mean you are using inline_data with 256-byte inodes? That would also be good to know, since there haven't been any well-known users of this feature so far (AFAIK). Since you are using this in a read-only manner, you won't hit the one know issue when an inline_data inode is extended to use an external block that may temporarily leave the inode in an inconsistent state. Cheers, Andreas