318 Star 2.1K Fork 1K

OpenHarmony / kernel_liteos_a

 / 详情

文件系统支持sd卡热插拔

已完成
任务 成员
创建于  
2021-08-11 11:34

【任务描述】
文件系统支持sd卡热插拔
【解决方案】
当前驱动已经保证热插拔功能,在sd卡掉电时会调用los_disk_deinit接口。文件系统需要提供一个强制umount掉sd卡对应分区的功能,这个功能需要考虑两个问题:
1、已经调下去的接口,要正常返回错误码,不能崩溃——这个驱动可以保证
2、未来继续调下去的接口,要拦截掉,这样可以把下面mount点的资源释放掉
我们通过提供一个ForceUmount接口来解决问题2,这个接口做了3件事
1、找到所有mount点下已经打开的File,把File的ops替换成只会返回错误码的ops,同时释放File中的私有资源
2、释放mount点下所有pathcache和所有引用计数为0的vnode。不为0的vnode,替换ops为只会返回错误码的ops,同时释放vnode中的私有资源
3、释放moumt点本身,解除和驱动的关联

由于在整个过程中,未对file和vnode进行直接的释放,不会影响已经打开的文件的各种接口,只是调用这些接口都会返回IO错误。

【任务来源】
xxxx

评论 (0)

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(1)
7989806 wild mucor 1619161325
C
1
https://gitee.com/openharmony/kernel_liteos_a.git
git@gitee.com:openharmony/kernel_liteos_a.git
openharmony
kernel_liteos_a
kernel_liteos_a

搜索帮助