[dfs][dfsv2]standardize refcount usage in dfsv2 #9286
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
拉取/合并请求描述:(PR description)
1.解决中提到的问题,对dfs_file中分别添加打开计数(所有fdtable中指向该dfs_file的个数),以及引用计数(对文件读写等操作增加引用计数),仅当引用计数降至0才释放dfs_file
2.规范原子变量引用计数使用,原先解引用会先将引用计数减1,然后才load引用计数判断是否为0,但这两个原子操作加起来并非原子,可能在中间打断,使用rt_atomic_dec_and_test来执行该操作
3.传入参数为空指针直接触发ASSERT,因为这种情况显然是调用者出错,这样使错误可以更及时发现
4.删除aspace中的引用计数,因为aspace一定是关联到一个vnode上的,当vnode释放时也应当同时释放aspace
[
为什么提交这份PR (why to submit this PR)
你的解决方案是什么 (what is your solution)
请提供验证的bsp和config (provide the config and bsp)
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0
代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up