要编译linux3.11的内核,但是下载最新的yaffs2,之后编译报错: error: unknown field 'readdir' specified in initializer
看了源码后发现,在linux3.11的源码里的file_operations结构体里面没有readdir,取而代之的是iterate,但是在yaffs里面(fs/yaffs2/yaffs_vfs.c)还是用的是readdir,所以把该文件改写一下。
具体改变如下:
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0))
static int yaffs_iterate(struct file *file, struct dir_context *ctx)
{
struct yaffs_obj *obj;
struct yaffs_dev *dev;
struct yaffs_search_context *sc;
struct inode *inode = file->f_dentry->d_inode;
unsigned long offset, curoffs;
struct yaffs_obj *l;
int ret_val = 0;
char name[YAFFS_MAX_NAME_LENGTH + 1];
obj = yaff