We've hit a number of cases in testing recently where the parent's i_rwsem ends up being the bottleneck in heavy parallel create workloads. Currently we have to take the parent's inode->i_rwsem exclusively when altering a directory, which means that any directory- morphing operations in the same directory are serialized. This is particularly onerous in the ->create codepath, since a filesystem may have to do a number of blocking operations to create a new file (allocate memory, start a transaction, etc.) Neil recently posted this RFC series, which allows parallel directory modifying operations: https://lore.kernel.org/linux-fsdevel/20241220030830.272429-1-neilb@xxxxxxx/ Al pointed out a number of problems in it, but the basic approach seems sound. I'd like to have a discussion at LSF/MM about this. Are there any problems with the basic approach? Are there other approaches that might be better? Are there incremental steps we could do pave the way for this to be a reality? -- Jeff Layton <jlayton@xxxxxxxxxx>