inode 구조체에서 변수 두 개의 의미를 모르겠습니다.

luckybobo의 이미지

struct inode {
...
struct list_head i_dirty_buffers;
struct list_head i_dirty_data_buffers;
...
}

위에서 두 개의 변수의 의미를 모르겠습니다.
특히나 두 번째 변수는 도통 알 수가 없습니다.
도와주십시오.
좋은 하루 되십시오.

a287848의 이미지

여기에서 말하는 dirty 의 의미는 해당 버퍼 ( 버퍼해드로 표현되는) 의 값이 디스크로 부터 읽어 왔을때와 달라졌다는 의미 입니다. 즉 쉽게 말하면 어떤 파일의 데이터 를 디스크로 부터 읽고 그것을 수정하게 되면 해당 버퍼해드는 dirty 로 표시 됩니다. 이것은 곧 이 버퍼 해드가 disk scheduler 에 의해 언젠가는 디스크에 write 되어야 한다는 의미 입니다. ext3 파일 시스템의 경우에는 우선적으로 journal 에 commit 이 되겠죠.
말씀하신 두개의 pointer 는 dirty buffer 를 가리키는 circular double linked list 를 가리키는 pointer 입니다. 리눅스에서 사용되는 대부분의 list 는 circular double linked list 입니다.

Dig it.