Hi Hugh,
I am encountering a very weird and serious issue with tmpfs, which I
have seen both in 2.6.39 and 3.2.13. The issue is the following:
1) I read a file from a NAND device back to /tmp/bar
2) /tmp/bar is loopback mounted to /tmp/bar_mount/
3) when I list the contents of /tmp/bar_mount I see only half of my
files, and using hexdump on /tmp/bar shows that the cramfs header is
correct and contains all, which rules out the cramfs issue
4) if I move /tmp/bar to /tmp/bar.move and loopback mount /tmp/bar.move
to /tmp/bar_mount, I now see all the files present
I have compared the md5sums of the cramfs file before mounting, after
mounting, before moving, after moving, they are all the same. Also, the
loopback mount does not yiel when mounting the cramfs file, which rules
out its bad integrity.
the /tmp directory is mounted with the defaults attributes (rw,relatime).
My system is a x86 Atom-based System-on-a-Chip and should not suffer
from the CPU data cache aliasing issue mentioned here:
http://lkml.indiana.edu/hypermail/linux/kernel/1202.0/00090.html
I backported this patch however, and it does not make any difference as
expected.
This behavior has been observed on several devices.
I will try to provide you with a test case to reproduce the issue,
meanwhile any hints are appreciated :)