author: Bharath Vedartham <linux.bhar@gmail.com> 2019-05-14 15:44:29 -0700
committer: Linus Torvalds <torvalds@linux-foundation.org> 2019-05-14 19:52:50 -0700
commit: 672cdd56f0ae95069e399db790dbf2e303ac72b7
parent: 1dcaa138fc7d87982ccddb7df9e4c30c6cb6eb15
Commit Summary:
Diffstat:
1 file changed, 9 insertions, 0 deletions
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index 32d8986c26fb..b5b26d8a192c 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -450,6 +450,15 @@ fail:
static inline __u32 xattr_hash(const char *msg, int len)
{
+ /*
+ * csum_partial() gives different results for little-endian and
+ * big endian hosts. Images created on little-endian hosts and
+ * mounted on big-endian hosts(and vice versa) will see csum mismatches
+ * when trying to fetch xattrs. Treating the hash as __wsum_t would
+ * lower the frequency of mismatch. This is an endianness bug in
+ * reiserfs. The return statement would result in a sparse warning. Do
+ * not fix the sparse warning so as to not hide a reminder of the bug.
+ */
return csum_partial(msg, len, 0);
}