The strace output shows XEmacs successfully reading one of the mounted
directories (/mnt/heg/data) and statting the files in the directory.
Later, it shows XEmacs successfully reading /mnt/heg and successfully
statting the mount point directories.
open("/mnt/heg",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 6
getdents(6, /* 6 entries */, 32768) = 104
lstat64("/mnt/heg/.", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat64("/mnt/heg/..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat64("/mnt/heg/data", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/mnt/heg/sas", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/mnt/heg/maxtor", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/mnt/heg/users", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
getdents(6, /* 0 entries */, 32768) = 0
close(6) = 0
At line 2627 of the trace, things get weird. XEmacs opens /mnt/heg
and starts to go through the mount point directories again, but it
only stats the . and .. entries.
open("/mnt/heg",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 6
getdents(6, /* 6 entries */, 32768) = 104
lstat64("/mnt/heg/.", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
lstat64("/mnt/heg/..", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
getdents(6, /* 0 entries */, 32768) = 0
close(6) = 0
This repeats a few times.
At line 3596 it shows Mark trying to do something with one of the
files under /mnt/heg/data. This is a file that XEmacs was able to
stat earlier in the trace.
stat64("/mnt/heg/data/testing.txt", {st_mode=S_IFREG|0755,
st_size=101, ...}) = 0
readlink("/mnt", 0xbfa69fbc, 4095) = -1 EINVAL (Invalid argument)
readlink("/mnt/heg", 0xbfa69fbc, 4095) = -1 EINVAL (Invalid argument)
readlink("/mnt/heg/data", 0xbfa69fbc, 4095) = -1 EINVAL (Invalid argument)
readlink("/mnt/heg/data/testing.txt", 0xbfa69fbc, 4095) = -1 EINVAL
(Invalid argument)
lstat64("/mnt/heg/data/testing.txt", {st_mode=S_IFREG|0755,
st_size=101, ...}) = 0
stat64("/mnt/heg/data/testing.txt", {st_mode=S_IFREG|0755,
st_size=101, ...}) = 0
readlink("/mnt", 0xbfa6108c, 4095) = -1 EINVAL (Invalid argument)
readlink("/mnt/heg", 0xbfa6108c, 4095) = -1 EINVAL (Invalid argument)
readlink("/mnt/heg/data", 0xbfa6108c, 4095) = -1 EINVAL (Invalid argument)
readlink("/mnt/heg/data/testing.txt", 0xbfa6108c, 4095) = -1 EINVAL
(Invalid argument)
readlink("/mnt/heg/data/.#testing.txt", 0x9544810, 100) = -1 ENOENT
(No such file or directory)
readlink("/mnt/heg/data/.#testing.txt", 0x9544810, 100) = -1 ENOENT
(No such file or directory)
stat64("/mnt/heg/data/testing.txt", {st_mode=S_IFREG|0755,
st_size=101, ...}) = 0
...
access("/mnt/heg/data/", W_OK) = 0
lstat64("/mnt/heg/data/testing.txt", {st_mode=S_IFREG|0755,
st_size=101, ...}) = 0
stat64("/mnt/heg/data/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
...
access("/mnt/heg/data/", W_OK) = 0
stat64("/mnt/heg/data/#testing.txt#", 0xbfa6ca0c) = -1 ENOENT (No such
file or directory)
...
stat64("/mnt/heg/data/", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
...
access("/mnt/heg/data/", W_OK) = 0
The rest of the trace output looks like XEmacs talking to the X
server.
So XEmacs checks for the presence of a lock file and a recovery file,
finding neither. But it never opens the file. In fact, the only
open() calls in the trace are for /mnt/heg/data and /mnt/heg.
|