fix the softlockups in attach_recursive_mnt()
In case when we mounting something on top of a large stack of overmounts, all of them being peers of each other, we get quadratic time by the depth of overmount stack. Easily fixed by doing commit_tree() before reparenting the overmount; simplifies commit_tree() as well - it doesn't need to skip the already mounted stuff that had been reparented on top of the new mounts. Since we are holding mount_lock through both reparenting and call of commit_tree(), the order does not matter from the mount hash point of view. Reported-by:"Lai, Yi" <yi1.lai@linux.intel.com> Tested-by:
"Lai, Yi" <yi1.lai@linux.intel.com> Reviewed-by:
Christian Brauner <brauner@kernel.org> Fixes: 66320685 "copy_tree(): don't link the mounts via mnt_list" Signed-off-by:
Al Viro <viro@zeniv.linux.org.uk>
Loading
Please sign in to comment