Overview

  • 요청된 buffer 를 깨끗하게 정리해 재활용할 수 있게 해주는 함수이다.

Line ref

  • L1526-L1532: Buffer table 에서 buffer 를 지울 것이기에, buffer table 의 entry (즉, hashtable entry) 에 대한 lock 을 잡는다.
  • L1534-L1535: Buffer descriptor 를 수정할 것이기에, buffer 자체에 대해서도 lock 을 잡는다.
    • 변수명이 buf_hdr 로 되어 있어서 헷갈릴 수 있는데, buffer header 가 buffer descriptor 를 의미하는 것이라 생각해도 된다.
  • L1537-L1543: Buffer 가 의도한 상태인지 체크
  • L1545-L1557: 찰나의 순간에 buffer 가 concurrent 하게 ref count 가 올라갔거나 dirty 가 되었을 수 있다. 이때는 false 를 반환하며 함수를 종료해 작업을 취소한다.
  • L1559-L1570: Buffer descriptor 를 깨끗하게 초기화 해주고 buffer lock 을 풀어준다.
  • L1572-L1575: Buffer table 에서 buffer 를 지워주고 buffer table lock 을 풀어준다.
  • L1577-L1581: 마지막으로 상태 체크를 해준 뒤에 종료.

Caller