Inaccurate documentation can mislead programmers and cause software to fail in unexpected ways. We examine mismatches between documented and actual error codes returned by 42 Linux file-related system calls. We use static program analysis to identify the error codes returned by system calls across 52 file systems, including widely-used implementations such as CIFS, ext3, IBM JFS, ReiserFS and XFS. We describe analysis optimizations that dramatically reduce run-time and memory consumption. Comparing analysis results with Linux manual pages reveals over 1,700 undocumented error-code instances affecting all file systems and system calls examined. Categories and Subject Descriptors D.2.4 [Software Engineering]: Software/Program Verification—formal methods, reliability, validation; D.2.5 [Software Engineering]: Testing and Debugging— error handling and recovery; D.2.7 [Software Engineering]: Distribution, Maintenance, and Enhancement—documentation; D.4.3 [Operating Systems]: File...