当设备上没有剩余空间时,file_operations.write行为

时间:2014-04-24 20:23:51

标签: linux-device-driver

我正在编写一个内存映射字符设备。我可以正确地读取和写入设备,但我的问题是关于以下情况下的写行为

  • 当要写入的数据量远远超过可用内存时。

在这种情况下,适当的行为是什么?我应该尽可能多地写,并在下一次写入时返回错误?或者从一开始就失败,因为数据远远超过设备容量?

为了使问题更具体,让我们在硬盘(ext3)上使用FS。如果我尝试写的数据超过硬盘上的可用空间,会发生什么-disk?它会在它开始之前失败吗?或写下尽可能多的数据并在下次写入时失败?

1 个答案:

答案 0 :(得分:0)

这很大程度上取决于您的申请。您的应用程序可以使用写入部分数据吗?部分数据有什么用吗?

IMO,您应该在写入任何内容之前进行可用的内存检查,如果您没有足够的内存则返回错误消息,否则您将无法进行任何有意义的错误恢复(如果在所有你正在照顾它)。