Either disallow two uses of the same image or provide a second changes file.
Perhaps another option would be for the VM process to create a second small "lock file" whenever the changes file is open for write, and remove it when it's closed or the process exits. On startup, VM would check if the lock file exists, if it does, will not start. Of course there is the problem of crashes ..
There is no way to guarentee integerity of a shared changes/image file using locking. You would need some form of notification and reloading as well, either that or a shared memory mapped file. All too dangerous considering crashes and incompatible changes and more crashes, and lost work, and annoyance at machines behaviour for loosing work...
Would something like that work and be implemented ..
Not really.
Aaron