I've been working through the mess that is the
error sign impedance mismatch between the core XFS code and the rest
of the kernel. I'm about half way through the codebase, and I've
found a bunch of incorrect error signs throughout the VFS interface
These were effectively all found by inspection, and is
further evidence that we need to convert all of XFS to negative
errors as quickly as possible. It is clear that we are missing these
on review, and changes made by developers adding functionality to
the VFS and hence just touching the outer layers of XFS are
simply not aware of these issues in the first place.
This patchset is based on v3.15-rc5 because some of the problems that
need to be fixed have merged into mainline via the ext4 tree
(COLLAPSE_RANGE changes). Hence I'll need to update the master
branch of the XFS tree to v3.15-rc5 before I merge these and push
them to Linus. I'm considering them as important fixes as things
like xfs_dir_fsync() and xfs_commit_metadata() returning incorrect
errnos mean data integrity operation failures may not be detected
correctly by applications.....
Comments, thoughts, testing all welcome!