static void * open_image(char *filename)
{
struct file *fp;
fp = filp_open(filename, O_RDONLY, 0); //这里打开是否成功用IS_ERR来判断,这里打开之后建议用vfs read来读,kernel 4.4 后ext4文件系统不支持f-op->read
//fp = open_namei(AT_FDCWD, filename, O_RD, 0);
/*
* 2.6.11 (FC4) supports filp_open() but later revs don't?
* fp = open_namei(AT_FDCWD, filename, O_RD, 0);
*/
if (IS_ERR(fp)){
printk("chenpuo dhdadpter open_image PTR_ERR(fp)=%d\n",PTR_ERR(fp)); //如果失败,可用PTR_ERR来打印error no
fp = NULL;
}
return fp;
}
static void close_image(void *image)
{
if (image)
filp_close((struct file *)image, NULL);
}