On Wed, Jan 10, 2024 at 09:19:37AM +1100, Dave Chinner wrote: > On Tue, Jan 09, 2024 at 07:25:38PM +0000, Matthew Wilcox wrote: > > On Tue, Jan 09, 2024 at 04:13:15PM -0300, Wedson Almeida Filho wrote: > > > On Wed, 3 Jan 2024 at 17:41, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > > > No. This "cleaner version on the Rust side" is nothing of that sort; > > > > this "readdir doesn't need any state that might be different for different > > > > file instances beyond the current position, because none of our examples > > > > have needed that so far" is a good example of the garbage we really do > > > > not need to deal with. > > > > > > What you're calling garbage is what Greg KH asked us to do, namely, > > > not introduce anything for which there are no users. See a couple of > > > quotes below. > > > > > > https://lore.kernel.org/rust-for-linux/2023081411-apache-tubeless-7bb3@gregkh/ > > > The best feedback is "who will use these new interfaces?" Without that, > > > it's really hard to review a patchset as it's difficult to see how the > > > bindings will be used, right? > > > > > > https://lore.kernel.org/rust-for-linux/2023071049-gigabyte-timing-0673@gregkh/ > > > And I'd recommend that we not take any more bindings without real users, > > > as there seems to be just a collection of these and it's hard to > > > actually review them to see how they are used... > > > > You've misunderstood Greg. He's saying (effectively) "No fs bindings > > without a filesystem to use them". And Al, myself and others are saying > > "Your filesystem interfaces are wrong because they're not usable for real > > filesystems". > > And that's why I've been saying that the first Rust filesystem that > should be implemented is an ext2 clone. That's our "reference > filesystem" for people who want to learn how filesystems should be > implemented in Linux - it's relatively simple but fully featured and > uses much of the generic abstractions and infrastructure. > > At minimum, we need a filesystem implementation that is fully > read-write, supports truncate and rename, and has a fully functional > userspace and test infrastructure so that we can actually verify > that the Rust code does what it says on the label. ext2 ticks all of > these boxes.... I think someone was working on that? But I'd prefer that not to be a condition of merging the VFS interfaces; we've got multiple new Rust filesystems being implemented and I'm also planning on merging Rust bcachefs code next merge window.