This commit is contained in:
Bernard Xiong 2014-11-01 15:36:37 +08:00
commit ef90e4828d
1 changed files with 6 additions and 5 deletions

View File

@ -750,11 +750,12 @@ int nfs_open(struct dfs_fd *file)
if (file->flags & DFS_O_CREAT) if (file->flags & DFS_O_CREAT)
{ {
if (nfs_mkdir(nfs, file->path, 0755) < 0) if (nfs_mkdir(nfs, file->path, 0755) < 0)
return -1; return -DFS_STATUS_EAGAIN;
} }
/* open directory */ /* open directory */
dir = nfs_opendir(nfs, file->path); dir = nfs_opendir(nfs, file->path);
if (dir == RT_NULL) return -DFS_STATUS_ENOENT;
file->data = dir; file->data = dir;
} }
else else
@ -766,20 +767,20 @@ int nfs_open(struct dfs_fd *file)
if (file->flags & DFS_O_CREAT) if (file->flags & DFS_O_CREAT)
{ {
if (nfs_create(nfs, file->path, 0664) < 0) if (nfs_create(nfs, file->path, 0664) < 0)
return -1; return -DFS_STATUS_EAGAIN;
} }
/* open file (get file handle ) */ /* open file (get file handle ) */
fp = rt_malloc(sizeof(nfs_file)); fp = rt_malloc(sizeof(nfs_file));
if (fp == RT_NULL) if (fp == RT_NULL)
return -1; return -DFS_STATUS_ENOMEM;
handle = get_handle(nfs, file->path); handle = get_handle(nfs, file->path);
if (handle == RT_NULL) if (handle == RT_NULL)
{ {
rt_free(fp); rt_free(fp);
return -1; return -DFS_STATUS_ENOENT;
} }
/* get size of file */ /* get size of file */
@ -798,7 +799,7 @@ int nfs_open(struct dfs_fd *file)
/* set private file */ /* set private file */
file->data = fp; file->data = fp;
file->size = fp->size; file->size = fp->size;
} }
return 0; return 0;