Re: [PATCH] fs: delay sysctl_nr_open check in expand_files()

From: Al Viro
Date: Sat Nov 16 2024 - 02:42:23 EST


On Sat, Nov 16, 2024 at 07:36:26AM +0000, Al Viro wrote:
> On Sat, Nov 16, 2024 at 07:41:28AM +0100, Mateusz Guzik wrote:
> > Suppose a thread sharing the table started a resize, while
> > sysctl_nr_open got lowered to a value which prohibits it. This is still
> > going to go through with and without the patch, which is fine.
> >
> > Further suppose another thread shows up to do a matching expansion while
> > resize_in_progress == true. It is going to error out since it performs
> > the sysctl_nr_open check *before* finding out if there is an expansion
> > in progress. But the aformentioned thread is going to succeded, so the
> > error is spurious (and it would not happen if the thread showed up a
> > little bit later).
> >
> > Checking the sysctl *after* we know there are no pending updates sorts
> > it out.
>
> What for? No, seriously - what's the point? What could possibly
> observe an inconsistent situation? How would that look like?

PS: I'm not saying I hate that patch; I just don't understand the point...