Pavel Emelyanov <xe...@parallels.com> writes:

> Eric W. Biederman wrote:
>> Pavel Emelyanov <xe...@parallels.com> writes:
>> 
>>>> +static struct inode *nsfd_mkinode(void)
>>>> +{
>>>> +  struct inode *inode;
>>>> +  inode = new_inode(nsfd_mnt->mnt_sb);
>>>> +  if (!inode)
>>>> +          return ERR_PTR(-ENOMEM);
>>>> +
>>>> +  inode->i_fop = &nsfd_file_operations;
>>>> +
>>>> +  /*
>>>> +   * Mark the inode dirty from the very beginning,
>>>> +   * that way it will never be moved to the dirty
>>>> +   * list because mark_inode_dirty() will think that
>>>> +   * it already _is_ on the dirty list.
>>>> +   */
>>>> +  inode->i_state = I_DIRTY;
>>>> +  inode->i_mode = S_IRUSR | S_IWUSR;
>>>> +  inode->i_uid = current_fsuid();
>>>> +  inode->i_gid = current_fsgid();
>>>> +  inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
>>>> +  return inode;
>>>> +}
>>> Why not use anon inodes?
>> 
>> Because you can't mount them anywhere.
>
> Worth changing them that way?

I don't think so.  They keep all of their state in struct file.  To be
usefully bind mounted you need to keep your state in the dentry or the
inode.

Ultimately what I have done is fix rootfs so it supports bind mounts and
used rootfs inodes.

Eric

_______________________________________________
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
Devel@openvz.org
https://openvz.org/mailman/listinfo/devel

Reply via email to