我在我们的一个shell脚本中使用blockdev --flushbufs /dev/mmcblk0p1
。
我认为它与原始块设备访问的同步效果相同。
我想知道在blockdev --flushbufs
结束时是否可以安全地假设该设备的所有延迟写入都已完成?
(手册页提到了ioctls所以我认为应该阻止?)
答案 0 :(得分:0)
在emmc上,此功能无法正常运行(与一般sd卡相同)。 ioctl尚未在上游驱动程序上实现。
到目前为止,我一直认为它按照它说的做,直到我意识到它什么也没做。
mmcqd不受ioctl BLKFLSBUF的影响,并处理队列中挂起的异步mmc请求。它需要花些时间,但是如果在执行后立即执行poweroff -f: blockdev --flushbufs 要么 回声3> / proc / sys / vm / drop_caches 在您的emmc或sd卡上,block dev和文件系统不会完全同步。