Good morning, all,
I'd need some advice and information
about a problem I've got with NFS and YAFFS2…
We are trying to export a YAFFS2
partition through an NFS export...
When you try to do so with a
standard YAFFS2 on a Linux version greater than 2.6, you get the following
error message:
"exp_export: export of invalid fs type."
To allow the NFS
export, with Linux 2.6.16, you only had to make 2 minor changes in yaffs_fs.c :
1) Add an empty struct :
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,9))
/* Just declare a
zero structure as a NULL value implies
* using the default
functions of expfs.
*/
static struct
export_operations yaffs_export_ops ;
#endif
2) And to make sure that the
superblock points at it by adding a line into
"yaffs_internal_read_super"
#if
(LINUX_VERSION_CODE > KERNEL_VERSION(2,5,9))
sb->s_export_op = &yaffs_export_ops;
#endif
However, on a
kernel 2.6.25, it gets tricky: We need to define 3 callback functions in the
struct export_operations:
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,9))
/* Just declare a
zero structure as a NULL value implies
* using the default functions
of expfs.
*/
static struct
export_operations yaffs_export_ops =
{
.fh_to_dentry =
yaffs2_fh_to_dentry,
.fh_to_parent =
yaffs2_fh_to_parent,
.get_parent =
yaffs2_get_parent
} ;
#endif
The generic implementation of the
callback functions (.fh_to_dentry,
.fh_to_parent, .get_parent) does not work.
Anyone has an idea about how to
implement these functions?
Thank you very much for your reading
and thanks in advance for your advices,
Regards,
Jean-Loup Sabatier