CA-86764: call migrate_send with VM lock in Message_forwarding.VDI.pool_migrate
CA-86764: call migrate_send with VM lock in Message_forwarding.VDI.pool_migrate

Before this change, migrate_send operations for consecutive VDI.pool_migrate
operations on the same VM were being queued after VDI:SR maps had been
specified in the VDI.pool_migrate operation. So by the time the first
migrate_send operation completed and the second one began, the cached VDI:SR
maps were stale and pointing the wrong SRs. Because we wait to call
VDI.pool_migrate until we hold the VM lock, the VDI:SR map is created with the
correct VDIs and SRs.

This patch will build, but will unfortunately deadlock without the following
patch applied, since VDI.pool_migrate now tries to call VM.migrate_send with
the VM lock held, and this lock isn't reentrant.

Signed-off-by: Mike McClurg <d5d39725aee3103039228164deec3c7acc6f60e3@citrix.com>

vasilenkomike/xen-api,euanh/xen-api,vasilenkomike/xen-api,anoobs/xen-api,salvocambria/xen-api,ravippandey/xen-api,koushikcgit/xen-api,thomassa/xen-api,simonjbeaumont/xen-api,cheng--zhang/xen-api,vasilenkomike/xen-api,thomassa/xen-api,anoobs/xen-api,guard163/xen-api,Frezzle/xen-api,srowe/xen-api,koushikcgit/xen-api,cheng--zhang/xen-api,anoobs/xen-api,cheng--zhang/xen-api,salvocambria/xen-api,rafalmiel/xen-api,jjd27/xen-api,guard163/xen-api,ravippandey/xen-api,agimofcarmen/xen-api,anoobs/xen-api,cheng--zhang/xen-api,huizh/xen-api,Frezzle/xen-api,koushikcgit/xen-api,jjd27/xen-api,ravippandey/xen-api,ravippandey/xen-api,robertbreker/xen-api,cheng-z/xen-api,djs55/xen-api,simonjbeaumont/xen-api,huizh/xen-api,agimofcarmen/xen-api,guard163/xen-api,djs55/xen-api,guard163/xen-api,koushikcgit/xen-api,robertbreker/xen-api,srowe/xen-api,djs55/xen-api,agimofcarmen/xen-api,srowe/xen-api,huizh/xen-api,jjd27/xen-api,rafalmiel/xen-api,thomassa/xen-api,euanh/xen-api,cheng-z/xen-api,simonjbeaumont/xen-api,robertbreker/xen-api,rafalmiel/xen-api,cheng--zhang/xen-api,djs55/xen-api,jjd27/xen-api,ravippandey/xen-api,robertbreker/xen-api,vasilenkomike/xen-api,Frezzle/xen-api,srowe/xen-api,cheng-z/xen-api,anoobs/xen-api,euanh/xen-api,huizh/xen-api,jjd27/xen-api,robertbreker/xen-api,djs55/xen-api,guard163/xen-api,thomassa/xen-api,salvocambria/xen-api,cheng--zhang/xen-api,thomassa/xen-api,djs55/xen-api,agimofcarmen/xen-api,agimofcarmen/xen-api,huizh/xen-api,huizh/xen-api,koushikcgit/xen-api,simonjbeaumont/xen-api,cheng-z/xen-api,guard163/xen-api,salvocambria/xen-api,rafalmiel/xen-api,vasilenkomike/xen-api,vasilenkomike/xen-api,jjd27/xen-api,salvocambria/xen-api,simonjbeaumont/xen-api,agimofcarmen/xen-api,srowe/xen-api,koushikcgit/xen-api,cheng-z/xen-api,euanh/xen-api,cheng-z/xen-api,rafalmiel/xen-api,euanh/xen-api,robertbreker/xen-api,simonjbeaumont/xen-api,cheng--zhang/xen-api,euanh/xen-api,cheng-z/xen-api,thomassa/xen-api,rafalmiel/xen-api,anoobs/xen-api,salvocambria/xen-api,Frezzle/xen-api,ravippandey/xen-api,Frezzle/xen-api