Christian Brauner <christian.brau...@canonical.com> writes: > On Tue, Oct 31, 2017 at 06:46:32PM -0500, Eric W. Biederman wrote: >> >> Christian I have looked through your code and I have found one real >> issue and of things I want to twak > > Cool, thanks for taking a close look Eric. > >> >> The real issue is reading nr_extents multiple times when reading a map. >> That can introduce races that will allow walking past the end of the >> array, if the first read is 0 but the second read is > 5. >> >> I have also found a couple of tweaks that look like they are worth >> implementing. > > Yeah, I saw that you unified some of the functions. I was thinking about this > but wanted to keep the cases distinct even with some amount of code > duplication. > But it seems very much worth it from a maintenance perspective. Thanks!
Yes. If we have a performance regression I am willing to remove the unification of map_id_range_down and map_id_down. But I can't imagine that will result in a measurable performance difference. If it does make a measurable perforamnce difference we almost certainly need to split the bsearch case as well. >> As all of these are very small and very straight forward I have >> tested these and applied them all to my for-next branch > > Thanks for the fixes Eric. Really appreciated. If you're too swamped for stuff > like that I'm obviously happy to do such trivial fixes myself. :) If you would test this some more in your setup I would appreciate it, just in case I missed something. Given where we are in the development cycle and the correctness concerns I just applied these as without the fix for reading extents exactly once the code is dangerously wrong. Eric > Christian > >> >> >> Eric W. Biederman (5): >> userns: Don't special case a count of 0 >> userns: Simplify the user and group mapping functions >> userns: Don't read extents twice in m_start >> userns: Make map_id_down a wrapper for map_id_range_down >> userns: Simplify insert_extent >> >> kernel/user_namespace.c | 159 >> ++++++++++++++++-------------------------------- >> 1 file changed, 51 insertions(+), 108 deletions(-) >> >> >> >>