fix bugs in lseek in dfs_posix.c and dfs_jffs2.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1946 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
70463829c5
commit
6202b6c155
|
@ -438,10 +438,12 @@ static int dfs_jffs2_lseek(struct dfs_fd* file,
|
|||
jffs2_file = (cyg_file *)(file->data);
|
||||
|
||||
/* set offset as current offset */
|
||||
jffs2_file_lseek(jffs2_file, &offset, SEEK_SET);
|
||||
result = jffs2_file_lseek(jffs2_file, &offset, SEEK_SET);
|
||||
if (result)
|
||||
return jffs2_result_to_dfs(result);
|
||||
return 0;
|
||||
/* update file position */
|
||||
file->pos = offset;
|
||||
return offset;
|
||||
}
|
||||
|
||||
/* return the size of struct dirent*/
|
||||
|
|
|
@ -199,11 +199,16 @@ off_t lseek(int fd, off_t offset, int whence)
|
|||
case DFS_SEEK_END:
|
||||
offset += d->size;
|
||||
break;
|
||||
|
||||
default:
|
||||
rt_set_errno(-DFS_STATUS_EINVAL);
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
if (offset < 0)
|
||||
{
|
||||
rt_set_errno(DFS_STATUS_EINVAL);
|
||||
rt_set_errno(-DFS_STATUS_EINVAL);
|
||||
return -1;
|
||||
}
|
||||
result = dfs_file_lseek(d, offset);
|
||||
|
|
Loading…
Reference in New Issue