Hello
Please point my error if I am wrong:
fs/exportfs/expfs.c:get_name() opens a directory with:
file = dentry_open(dget(dentry), NULL, O_RDONLY);
which results in file where file->f_vfsmnt == NULL.
Then fs/readdir.c:vfs_readdir() and, therefore,
include/linux/fs.h:file_accessed(file) are called.
file_accessed() calls fs/inode.c:touch_atime() which tryies to dereference mnt
which is NULL.
"Vladimir V. Saveliev" <[email protected]> wrote:
>
> Hello
>
> Please point my error if I am wrong:
>
> fs/exportfs/expfs.c:get_name() opens a directory with:
> file = dentry_open(dget(dentry), NULL, O_RDONLY);
> which results in file where file->f_vfsmnt == NULL.
>
> Then fs/readdir.c:vfs_readdir() and, therefore,
> include/linux/fs.h:file_accessed(file) are called.
> file_accessed() calls fs/inode.c:touch_atime() which tryies to dereference mnt
> which is NULL.
>
I think you're looking at the -mm tree, in which Christoph changed all that
stuff.
Hello
Andrew Morton wrote:
> "Vladimir V. Saveliev" <[email protected]> wrote:
>>Hello
>>
>>Please point my error if I am wrong:
>>
>>fs/exportfs/expfs.c:get_name() opens a directory with:
>>file = dentry_open(dget(dentry), NULL, O_RDONLY);
>>which results in file where file->f_vfsmnt == NULL.
>>
>>Then fs/readdir.c:vfs_readdir() and, therefore,
>>include/linux/fs.h:file_accessed(file) are called.
>>file_accessed() calls fs/inode.c:touch_atime() which tryies to dereference mnt
>>which is NULL.
>>
>
> I think you're looking at the -mm tree, in which Christoph changed all that
> stuff.
>
Ah, sorry, yes, I found that in 2.6.15-rc5-mm3