this post was submitted on 25 Feb 2024
17 points (100.0% liked)
Programming
13384 readers
1 users here now
All things programming and coding related. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Little bit unfair as this was already an existing thing that got a new way to be triggered rather than a completely new feature needing code to handle not following symlinks.
To accurately guess you'd need to know that "don't follow symlinks in this particular scenario" already exists and we're just adding an OR to an if statement.
You have misunderstood. No, it wasn't an existing thing. This is the code that implements it. That's the point.
The change to fs/namei.c is the code to handle not following symlinks; the rest is some necessary code to create the option and expose it to userland.
(Edit: Rereading I do see a little better what you were saying - I actually looked it up and the code that “originally” implemented not following symlinks, that you’re saying we're now adding an or statement to activate, was 2 lines to expose the option, 2 lines of white space, and 2 lines to implement not following symlinks).
Yeah I get that but you dig deeper and that implantation was just throwing an error that needs to be handled elsewhere. The "real" code is what is handling that error.
But then we're back to act acknowledging a meaningful point of having commits that do one thing and do it well and understandably, and I'm back to appreciating the difference between the kernel and our app.
There is no code somewhere else that needed to be written somewhere else to handle the error. It just started working because those lines were added. That's what I keep saying. That is the nature of the good design I am pleased by to give the example.
I'm such a stubborn person that I literally had a look in namei.c to see what happens from that return, to make sure. I was fairly confident that that's how it works, just because it's rare in kernel development to add a feature without the means to trigger it and then add the means to trigger it in a separate patch (why would it not just all go in at once?), but I had a look and here's what I saw:
Where are you getting your assertion that obviously it's already implemented somewhere else separate from this patch?