Ensure root filesystem is recursively mounted readonly
Ensure root filesystem is recursively mounted readonly

If the guest is configured with

    <filesystem type='mount'>
      <source dir='/'/>
      <target dir='/'/>
      <readonly/>
    </filesystem>

Then any submounts under / should also end up readonly, except
for those setup as basic mounts. eg if the user has /home on a
separate volume, they'd expect /home to be readonly, but we
should not touch the /sys, /proc, etc dirs we setup ourselves.

Users can selectively make sub-mounts read-write again by
simply listing them as new mounts without the <readonly>
flag set

    <filesystem type='mount'>
      <source dir='/home'/>
      <target dir='/home'/>
    </filesystem>

Signed-off-by: Daniel P. Berrange <bb938cf255e055ff3507f2627d214e8e62118fcf@redhat.com>

rlaager/libvirt,datto/libvirt,shugaoye/libvirt,jardasgit/libvirt,elmarco/libvirt,fabianfreyer/libvirt,fabianfreyer/libvirt,zippy2/libvirt,taget/libvirt,rlaager/libvirt,jfehlig/libvirt,taget/libvirt,agx/libvirt,libvirt/libvirt,olafhering/libvirt,fabianfreyer/libvirt,jfehlig/libvirt,eskultety/libvirt,VenkatDatta/libvirt,taget/libvirt,shugaoye/libvirt,datto/libvirt,cbosdo/libvirt,crobinso/libvirt,andreabolognani/libvirt,zhlcindy/libvirt-1.1.4-maintain,rlaager/libvirt,VenkatDatta/libvirt,VenkatDatta/libvirt,fabianfreyer/libvirt,datto/libvirt,andreabolognani/libvirt,elmarco/libvirt,taget/libvirt,rlaager/libvirt,jfehlig/libvirt,elmarco/libvirt,elmarco/libvirt,crobinso/libvirt,nertpinx/libvirt,zhlcindy/libvirt-1.1.4-maintain,crobinso/libvirt,jfehlig/libvirt,cbosdo/libvirt,shugaoye/libvirt,libvirt/libvirt,agx/libvirt,datto/libvirt,olafhering/libvirt,olafhering/libvirt,zhlcindy/libvirt-1.1.4-maintain,cbosdo/libvirt,jardasgit/libvirt,libvirt/libvirt,zhlcindy/libvirt-1.1.4-maintain,zippy2/libvirt,eskultety/libvirt,rlaager/libvirt,cbosdo/libvirt,crobinso/libvirt,datto/libvirt,andreabolognani/libvirt,eskultety/libvirt,libvirt/libvirt,agx/libvirt,andreabolognani/libvirt,nertpinx/libvirt,shugaoye/libvirt,cbosdo/libvirt,jardasgit/libvirt,taget/libvirt,zhlcindy/libvirt-1.1.4-maintain,fabianfreyer/libvirt,eskultety/libvirt,nertpinx/libvirt,nertpinx/libvirt,andreabolognani/libvirt,agx/libvirt,olafhering/libvirt,zippy2/libvirt,VenkatDatta/libvirt,elmarco/libvirt,shugaoye/libvirt,nertpinx/libvirt,VenkatDatta/libvirt,agx/libvirt,jardasgit/libvirt,eskultety/libvirt,zippy2/libvirt,jardasgit/libvirt