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...