2014-03-01 24 views
0

我正在使用vfs_write(...)在內核模塊中編寫文件。 如果在寫入文件時發生錯誤,我希望所做的更改得到恢復,並且文件應該恢復到原始狀態。目前我正在考慮維護一個臨時文件,其中包含要寫入的文件的數據,如果發生故障,則用原始文件替換臨時文件,但在內核模塊中工作太多。恢復更改爲內核模塊中的文件

我被困在這裏任何人都知道任何解決這個問題的方法嗎?

+0

你爲什麼在第一時間寫入內核文件? – tangrs

回答

0

這可能是太多的工作,但它聽起來像是正確的解決方案。

或者,處理從內核用戶空間獲取數據(例如,從/proc/或類似的文件中讀取數據),並使其原子地替換相關文件。

+0

如何正確讀/寫/ proc /?和其他任何你能想到的建議?因爲編寫臨時文件在內核模塊中聽起來太多了... – user3367692

+0

要將自定義文件放在'/ proc'中,請參閱以下示例:http://stackoverflow.com/questions/588848/how-to-create-proc -entry-under-proc-driver。您可以在用戶空間中讀取此文件並原子地替換磁盤上的文件。或者只是在/ proc中就足夠了?例如,你可以將磁盤上的文件符號鏈接到'/ proc'文件。 – abligh

+0

嘿,你能告訴我如何鏈接一個proc文件與給定文件的代碼(在處理完成後用proc文件替換給定的文件) – user3367692