今天看到empty_dir函數發現他並不是比較i_size==32來判斷是否爲空,而是去讀所有的塊來判斷是否爲空,然後就覺得很奇怪,不過總覺得事出必有因,翻來覆去的找了一下,終於有了點發現,去看了一下add_entry和sys_rmdir這兩個函數終於發現了一個事實!那就是目錄文件的大小隻會增大不會減小。下面是實驗的截圖:
在這個實驗裏我們可以看到當我建立了test2 test3 test4四個文件後
test1目錄變成了80,但是我刪除這3個目錄項後,test1目錄並沒有減少,這就說明了,在empty_dir中爲什麼linus遍歷來確定目錄是不是爲空了!不知道這算不算是一個小bug,還是minix1.0的文件系統中本就是如此!