On Wed, Mar 12, 2025 at 01:22:41AM +0000, Jaegeuk Kim wrote: > On 03/12, Matthew Wilcox wrote: > > On Tue, Mar 11, 2025 at 07:50:38PM +0000, patchwork-bot+f2fs@xxxxxxxxxx wrote: > > > Hello: > > > > > > This series was applied to jaegeuk/f2fs.git (dev) > > > by Jaegeuk Kim <jaegeuk@xxxxxxxxxx>: > > > > Thanks! > > > > FWIW, I have a tree with 75 patches in it on top of this that do more > > folio conversion work. It's not done yet; maybe another 200 patches to > > go? I don't think it's worth posting at this point in the cycle, so > > I'll wait until -rc1 to post, by which point it'll probably be much > > larger. > > Ok, thanks for the work! Will keep an eye on. Unfortunately, I thnk I have to abandon this effort. It's only going to make supporting large folios harder (ie there would then need to be an equivalently disruptive series adding support for large folios). The fundamental problem is that f2fs has no concept of block size != PAGE_SIZE. So if you create a filesystem on a 4kB PAGE_SIZE kernel, you can't mount it on a 16kB PAGE_SIZE kernel. An example: int f2fs_recover_inline_xattr(struct inode *inode, struct page *page) { struct f2fs_inode *ri; ipage = f2fs_get_node_page(F2FS_I_SB(inode), inode->i_ino); ri = F2FS_INODE(page); so an inode number is an index into the filesystem in PAGE_SIZE units, not in filesystem block size units. Fixing this is a major effort, and I lack the confidence in my abilities to do it without breaking anything. As an outline of what needs to happen, I think that rather than passing around so many struct page pointers, we should be passing around either folio + offset, or we should be passing around struct f2fs_inode pointers. My preference is for the latter. We can always convert back to the folio containing the inode if we need to (eg to mark it dirty) and it adds some typesafety by ensuring that we're passing around pointers that we believe belong to an inode and not, say, a struct page which happens to contain a directory entry. This is a monster task, I think. I'm going to have to disable f2fs from testing with split page/folio. This is going to be a big problem for Android.