当调用write函数进行异步读写的时候,这个时候有可能返回ENOSPEC的错误码,在这个错误码发生的时候,内存页中已经存在大量的数据,这个时候数据时如何处理的,内存中的pageout函数是否会释放这些页表,毕竟由于磁盘空间的缘故,但是不能保证内存中的页表,一直存在,等待用户删除磁盘的空间,然后才重新写入,毕竟这些数据也不是完全没有用的,保证数据的完整性和一致性。就存在一个问题,当前的开发者是如何看待这个问题的。尤其是如果磁盘离线状态,内存耗尽,导致系统崩溃。
从某种角度来查看源码,write函数是如何知晓磁盘满载,无法写入。尤其是底层的和驱动打交道的writepage函数是如何获取到磁盘驱动读写的信息。
时间: 2024-08-30 04:39:10