On Mon, Jul 25, 2016 at 09:59:43AM -0500, Eric W. Biederman wrote:
"Michael Kerrisk (man-pages)" [off-list ref] writes:
[snip]
[snip]
quoted
quoted
quoted
So, from my point of view, the important piece that was missing from
your commit message was the note to use readlink("/proc/self/fd/%d")
on the returned FDs. I think that detail needs to be part of the
commit message (and also the man page text). I think it even be
helpful to include the above program as part of the commit message:
it helps people more quickly grasp the API.
Please, please make the standard way to compare these things fstat.
That is much less magic than a symlink, and a little more future proof.
Possibly even kcmp.
I like the idea to use kcmp to compare namespaces. I am going to add this
functionality to kcmp and describe all these in the man page.
quoted
As in fstat() to get the st_ino field, right?
Both the st_ino and st_dev fields.
The most likely change to support checkpoint/restart in the future is to
preserve st_ino across migrations and instantiate a different instance
of nsfs to hold the inode numbers from the previous machine.
It sounds tricky. BTW: Actually this is not only one places where we have
this sort of problem. For example, now mount id-s are not preserved when
a container is migrated. The same problem is applied to tmpfs, where
inode numbers are not preserved for files.
We would need to handle the preservation carefully or else there is
a chance that two namespace file descriptors (collected from different
sources) with different st_dev and st_ino fields may actuall refer to
the same object.
Which is a long way of saying we have the st_dev field please use it,
it may matter at some point.
Eric