- 論壇徽章:
- 0
|
vfs_read 在某些機(jī)器上面返回-14 讀取文件 EFAULT
代碼如下
mm_segment_t oldfs_;
int ret_ = 0;
struct inode *inode_ = NULL;
char *data_ = NULL;
loff_t size_ = 0;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0)
inode_ = file_inode(f);
#else
inode_ = f->f_dentry->d_inode;
#endif
*size = inode_->i_size;
size_ = *size;
*data = (char*) kmalloc(size_ + 1, GFP_ATOMIC);
data_ = *data;
oldfs_ = get_fs();
set_fs(get_ds());
f->f_pos=0;//f->f_op->llseek(f,0,0);//調(diào)整初始位置
ret_ = vfs_read(f, data_, size_, &f->f_pos);
set_fs(oldfs_);
//pr_info("httplist Cannot read \"%d,%d,%d,%d\"\n", ret_,EBADF,EINVAL,EFAULT);
if (ret_ < 0){
pr_info("Cannot read \"%d\"\n", ret_);
return false;
}
請問各位,這個(gè)一般是什么地方出問題了呢? 非常感謝 找了很久沒有找到答案 本地機(jī)器可以 服務(wù)器不可以 然后服務(wù)器上面用內(nèi)核源碼編譯了一下這個(gè)模塊 也不行的 不知道什么原因
|
|