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