Push the BKL acquisition from vfs to every specific filesystems with hope that it can be eliminated in a second moment.
The first 4 patches add BKL lock into umount_begin() functions (for the filesystems that have this handler). The last one remove lock_kernel()/unlock_kernel() from fs/namespace.c (the only point that invoke umount_begin() funtcions).