提交 b9b9d6db 编写于 作者: C chenjing

Description: [fix] LFN dir entry leak

Bug: #I3J1IC
Test: io test 1000 time
上级 b56c8392
...@@ -399,6 +399,7 @@ int fatfs_create(struct Vnode *parent, const char *name, int mode, struct Vnode ...@@ -399,6 +399,7 @@ int fatfs_create(struct Vnode *parent, const char *name, int mode, struct Vnode
ret = fatfs_2_vfs(result); ret = fatfs_2_vfs(result);
goto ERROR_UNLOCK; goto ERROR_UNLOCK;
} }
dp->blk_ofs = dir_ofs(dp);
get_fileinfo(dp, finfo); get_fileinfo(dp, finfo);
dp->obj.objsize = 0; dp->obj.objsize = 0;
...@@ -1539,6 +1540,7 @@ int fatfs_rename(struct Vnode *old_vnode, struct Vnode *new_parent, const char * ...@@ -1539,6 +1540,7 @@ int fatfs_rename(struct Vnode *old_vnode, struct Vnode *new_parent, const char *
if (result != FR_OK) { if (result != FR_OK) {
goto ERROR_FREE; goto ERROR_FREE;
} }
dp_new->blk_ofs = dir_ofs(dp_new);
get_fileinfo(dp_new, finfo_new); get_fileinfo(dp_new, finfo_new);
dfp_new->fno.fp_list.pstNext = dfp_old->fno.fp_list.pstNext; dfp_new->fno.fp_list.pstNext = dfp_old->fno.fp_list.pstNext;
...@@ -1770,6 +1772,7 @@ int fatfs_mkdir(struct Vnode *parent, const char *name, mode_t mode, struct Vnod ...@@ -1770,6 +1772,7 @@ int fatfs_mkdir(struct Vnode *parent, const char *name, mode_t mode, struct Vnod
if (result != FR_OK) { if (result != FR_OK) {
goto ERROR_REMOVE_CHAIN; goto ERROR_REMOVE_CHAIN;
} }
dfp_new->f_dir.blk_ofs = dir_ofs(&(dfp_new->f_dir));
get_fileinfo(&(dfp_new->f_dir), &(dfp_new->fno)); get_fileinfo(&(dfp_new->f_dir), &(dfp_new->fno));
ret = VnodeAlloc(&fatfs_vops, &vp); ret = VnodeAlloc(&fatfs_vops, &vp);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册