[XFS] fix error inversion problems with data flushing
authorDave Chinner <david@fromorbit.com>
Fri, 28 Nov 2008 03:23:33 +0000 (14:23 +1100)
committerNiv Sardi <xaiki@sgi.com>
Mon, 1 Dec 2008 00:11:10 +0000 (11:11 +1100)
commit2e6560929d8ab4b650fecc3a87013852b34f0922
tree59da3284d66e3a5bdf86780a009bf2ce941fbfd4
parent65795910c1b798f8a47181b48cf6eb163a15e778
[XFS] fix error inversion problems with data flushing

XFS gets the sign of the error wrong in several places when
gathering the error from generic linux functions. These functions
return negative error values, while the core XFS code returns
positive error values. Hence when XFS inverts the error to be
returned to the VFS, it can incorrectly invert a negative
error and this error will be ignored by the syscall return.

Fix all the problems related to calling filemap_* functions.

Problem initially identified by Nick Piggin in xfs_fsync().

Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Niv Sardi <xaiki@sgi.com>
fs/xfs/linux-2.6/xfs_fs_subr.c
fs/xfs/linux-2.6/xfs_lrw.c
fs/xfs/linux-2.6/xfs_super.c
fs/xfs/xfs_vnodeops.c
fs/xfs/xfs_vnodeops.h