Linus Torvalds 与 Bcachefs 的作者 Kent Overstreet 的另一次讨论以 Linus 表示愿意从内核中删除 Bcachefs 代码而告终。 Linux 6.17. 与此同时,Linus 将对 Bcachefs 的修改纳入了 6.16 内核,这进一步引发了他对 Kent 行为的不满。Linus 写道:
我相信我们的路径将在 6.17 合并窗口中分道扬镳。
您说得很清楚,我不能质疑任何错误修复,而应该接受一切。
说实话,我对于参与这一切并不是特别舒服,而且在讨论中我们双方似乎唯一真正同意的事情就是“我们完成了”。
在此声明之前,与 Kent 的通信属于私人性质,具体细节尚不清楚。然而,在关于此话题的讨论帖中,Kent 写道,或许他在私人通信中的话被误解了,他并不认为应该从内核中移除 BcacheFS。但他已准备好从主内核中停止使用 BcacheFS。 Linux 这不会扼杀这个项目,但会是个大问题。如果移除 BcacheFS,开发工作仍将继续,文件系统将以 DKMS 模块的形式分发。Kent 还指出,从内核中移除 BcacheFS 对他和 Linus 来说是最好的选择,但这显然不是对用户或开发社区的最佳方案。
Kent 和 Linus 之间的争执源于他们不断违反提交内核变更和补丁的规则。Kent 认为,文件系统 (FS) 中的问题修复应该立即以任何可能的方式提交。Linus 则坚持在新内核分支开发的早期阶段允许进行功能性变更和重大修复,而后期的候选版本则只专注于修复错误。Kent 经常违反这条规则,在错误的时间提交重大变更,这引起了 Linus 的不满,并引发了新一轮的争执。Linus 此前曾警告 Kent,他希望将 Bcachefs 从主内核中移除,因为 Kent 继续在自己的“沙盒”中孤军奋战,不参与合作,也不愿接受内核开发社区的游戏规则。
就 6.16 内核而言,Kent 提交了一组补丁以纳入 RC3 更新,其中包括一个实现新“journal_rewind”选项的补丁。Linus 写道,Kent 忘记了在功能验收窗口关闭后,不允许向内核添加新功能,即使该功能与修复其他错误有关,因为在版本形成的后期添加新功能可能会导致回归。此外,Bcachefs 仍然被定位为实验性文件系统,修复错误的速度并不那么重要。
Kent 回应称,开发的主要目标是为用户提供可运行的代码,因此他不打算在修复影响数据完整性的错误方面做出妥协。与其他子系统不同,文件系统 (FS) 中的错误无法通过重启来修复,并且可能导致数据损坏,因此 Kent 认为,将其修复推迟到下一个变更接受窗口是不可接受的,即使此类修复需要进行重大更改。
添加的“journal_rewind”选项可回滚日志中的更改,从而将文件系统 (FS) 重置到先前的状态。Kent 认为应该立即启用这个新选项,因为它解决了在删除子项时遇到错误且没有备份副本的用户恢复文件系统的问题。最初,Linus 拒绝接受 6.16-RC3 内核中包含此更改的补丁集,但在与 Kent 进行私人沟通后,Kent 改变了立场,接受了这些更改并将其纳入代码库,并在此基础上形成了 6.16-RC4 更新。
来源: opennet.ru
