Hi All,

   I am trying to start a lxc container using libvirt and I am facing an issue due to pivot_root.

  The return code from the system call “pivot_root” is EINVAL (Invalid arguments).
  I isolated the issue to this specific condition check within the system call.

This is an code snippet from fs/namespace.c::pivot_root
  
   error = -EINVAL;
    if (root.mnt->mnt_root != root.dentry)
        goto out2; /* not a mountpoint */
   if (root.mnt->mnt_parent == root.mnt)  << this represents a circular mount reference
           goto out2; /* not attached */  
   if (new.mnt->mnt_root != new.dentry)
        goto out2; /* not a mountpoint */
    if (new.mnt->mnt_parent == new.mnt)
        goto out2; /* not attached */

This issue occurs for me, since I am using fstype "rootfs" as "/" and all binaries are mounted ISO's for execution within "/".
Based on information from the below links, I have realized, that pivot_root is not possible for the above case.
https://lkml.org/lkml/2005/10/8/17
https://bugzilla.kernel.org/show_bug.cgi?id=4857

I would like to know , if my observations are correct and is there any workaround to overcome this issue?

Any help in this regard would be useful.

-Alphonse