fix invalidate_inode_pages2_range() to not clear ret
fix invalidate_inode_pages2_range() to not clear ret

DIO invalidates page cache through invalidate_inode_pages2_range().
invalidate_inode_pages2_range() sets ret=-EIO when
invalidate_complete_page2() fails, but this ret is cleared if
do_launder_page() succeed on a page of next index.

In this case, dio is carried out even if invalidate_complete_page2() fails
on some pages.

This can cause inconsistency between memory and blocks on HDD because the
page cache still exists.

[5c1e68b099950c134891f0b6e179498a8ebe9cf9@linux-foundation.org: coding-style fixes]
Signed-off-by: Hisashi Hifumi <895de43088785c8c442f62fd7f45df26bc63663d@oss.ntt.co.jp>
Cc: Badari Pulavarty <a0471031ec5071754e15184cabeebf7217ef1fd9@us.ibm.com>
Cc: Ken Chen <76daf34ccc35c39bb215f117423bdc362ed1c854@google.com>
Cc: Zach Brown <bdd5f2a410e3c75a25da3e38f76d719a18e93cd3@oracle.com>
Cc: Nick Piggin <3db79564e4bc2ada42ade8dfd09b5548e4fe6cdf@yahoo.com.au>
Cc: Trond Myklebust <cc958843532c615cbd4920e868f78c7985331a5a@fys.uio.no>
Cc: "J. Bruce Fields" <51738506c1b2ccb0761f23bdc612c93babf738ea@fieldses.org>
Cc: Chuck Lever <a7e3c7b71a111ae16c073dbf02c989697668310c@citi.umich.edu>
Signed-off-by: Andrew Morton <5c1e68b099950c134891f0b6e179498a8ebe9cf9@linux-foundation.org>
Signed-off-by: Linus Torvalds <69652caca27c8b940640ad396ab71f93cacec34f@linux-foundation.org>

TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas