Re: [PATCH 00/61] vfs: change inode->i_ino from unsigned long to u64

Jeff Layton
2026-02-27T19:35:21Z

On Fri, 2026-02-27 at 14:01 -0500, Mathieu Desnoyers wrote:
> On 2026-02-27 12:19, Jeff Layton wrote:
> > On Thu, 2026-02-26 at 16:49 +0000, Matthew Wilcox wrote:
> > > On Thu, Feb 26, 2026 at 10:55:02AM -0500, Jeff Layton wrote:
> > > > The bulk of the changes are to format strings and tracepoints, since the
> > > > kernel itself doesn't care that much about the i_ino field. The first
> > > > patch changes some vfs function arguments, so check that one out
> > > > carefully.
> > >
> > > Why are the format strings all done as separate patches? Don't we get
> > > bisection hazards by splitting it apart this way?
> >
> > Circling back to this...
> >
> > I have a v2 series (~107 patches) that I'm testing now that does this
> > more bisectably with the typedef and macro scaffolding that Mathieu
> > suggested. I'll probably send it early next week.
> >
> > I had done it this way originally since I figured it was best to break
> > this up by subsystem. Should I continue with this series as a set of
> > patches broken up this way, or is it preferable to combine the pile of
> > format changes into fewer patches?
>
> Here is the approach I would recommend to maximize signal over noise
> for the follow up email thread discussions:
>
> Now that your series is bisectable, you could post a [RFC PATCH v2]
> series with the following:
>
> - Patch 00 introduces the series, points to your git branch implementing
> the whole series,
> - The first few patches introduce the new type (kino_t) and macro to
> do the format string transition. Initially kino_t would typedef to
> unsigned long (no changes).
> - Followed by patches implementing the type + format string changes for
> a few key subsystems.
> - The final patch would change kino_t and the format string macro to
> 64-bit integers.
>

That's pretty much the approach the set I have takes. The current set
is here:

https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git/log/?h=iino-u64

My question was more about whether I should batch some of the changes
together. My inclination is that doing it in small, incremental patches
is a good thing, but I figured I'd ask before I spam everyone with a
100+ patch series.

> Once everyone agree on those core changes, you could proceed to post
> patches that change additional subsystems in a subsequent round.
>
> One more comment: have you tried using Coccinelle to do this kind of
> semantic code change ?

I've use coccinelle before for this sort of change, but my skills with
it are pretty primitive. The problem I saw with using it here is that
the main set of changes involved format strings, and that didn't look
straightforward to do with coccinelle. The LLM seems to have sorted it
out with no trouble though.

On a related note, has anyone has taught an LLM how to use Coccinelle.
I wonder if it might give it a better tool for its toolbox, since
Claude at least seems to mostly use bash, perl or python to make
changes across the tree.
--
Jeff Layton <jlayton@kernel.org>