On 28/04/2021 18.50, Linus Torvalds wrote: > [ Added Andy, who replied to the separate thread where Jia already > posted the patch ] > > On Wed, Apr 28, 2021 at 12:38 AM Rasmus Villemoes > <linux@xxxxxxxxxxxxxxxxxx> wrote: >> >> So the patch makes sense to me. If somebody says '%pD5', it would get >> capped at 4 instead of being forced down to 1. But note that while that >> grep only produces ~36 hits, it also affects %pd, of which there are >> ~200 without a 2-4 following (including some vsprintf test cases that >> would break). So I think one would first have to explicitly support '1', >> switch over some users by adding that 1 in their format string >> (test_vsprintf in particular), then flip the default for 'no digit >> following %p[dD]'. > > Yeah, and the "show one name" actually makes sense for "%pd", because > that's about the *dentry*. > > A dentry has a parent, yes, but at the same time, a dentry really does > inherently have "one name" (and given just the dentry pointers, you > can't show mount-related parenthood, so in many ways the "show just > one name" makes sense for "%pd" in ways it doesn't necessarily for > "%pD"). But while a dentry arguably has that "one primary component", > a _file_ is certainly not exclusively about that last component. > > So you're right - my "how about something like this" patch is too > simplistic. The default number of components to show should be about > whether it's %pd or %pD. Well, keeping the default at 1 for %pd would certainly simplify things as there are much fewer %pD instances. > That also does explain the arguably odd %pD defaults: %pd came first, > and then %pD came afterwards. Eh? 4b6ccca701ef5977d0ffbc2c932430dea88b38b6 added them both at the same time. Rasmus