Firebird allocated new pages in buffer cache only. They go to disk some time later - usually at commit. If disk is full many newly allocated pages can't be written. This is often leads to corruption.
Proposed solution is to write page to disk immediately after it is allocated. This guarantees that only one page can't be written in case of disk full condition and allow to gracefully handle this error