Messages in this thread | | | From | Linus Torvalds <> | Date | Thu, 11 Jan 2024 21:05:51 -0800 | Subject | Re: [GIT PULL] f2fs update for 6.8-rc1 |
| |
On Thu, 11 Jan 2024 at 10:28, Jaegeuk Kim <jaegeuk@kernel.org> wrote: > > git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git tags/f2fs-for-6.8-rc1
Hmm. I got a somewhat confusing conflict in f2fs_rename().
And honestly, I really don't know what the right resolution is. What I ended up with was this:
if (old_is_dir) { if (old_dir_entry) f2fs_set_link(old_inode, old_dir_entry, old_dir_page, new_dir); else f2fs_put_page(old_dir_page, 0); f2fs_i_links_write(old_dir, false); }
which seems to me to be the right thing as a resolution. But I note that linux-next has something different, and it is because Al said in
https://lore.kernel.org/all/20231220013402.GW1674809@ZenIV/
that the resolution should just be
if (old_dir_entry) f2fs_set_link(old_inode, old_dir_entry, old_dir_page, new_dir); if (old_is_dir) f2fs_i_links_write(old_dir, false);
instead.
Now, some of those differences are artificial - old_dir_entry can only be set if old_is_dir is set, so the nesting difference is kind of a red herring.
But I feel like that f2fs_put_page() is actually needed, or you end up with a reference leak.
So despite the fact that Al is never wrong, I ended up going with my gut, and kept my resolution that is different from linux-next.
End result: I'm now very leery of my merge. On the one hand, I think it's right. On the other hand, the likelihood that Al is wrong is pretty low.
So please double- and triple-check that merge, and please send in a fix for it. Presumably with a comment along the lines of "Al was right, don't try to overthink things".
Hubris. That's the word for thinking you know better than Al.
Linus
| |