Files
linux/fs/cifs
Yadan Fan bbb3c5076b Fix cifs_uniqueid_to_ino_t() function for s390x
commit 1ee9f4bd1a upstream.

This issue is caused by commit 02323db17e ("cifs: fix
cifs_uniqueid_to_ino_t not to ever return 0"), when BITS_PER_LONG
is 64 on s390x, the corresponding cifs_uniqueid_to_ino_t()
function will cast 64-bit fileid to 32-bit by using (ino_t)fileid,
because ino_t (typdefed __kernel_ino_t) is int type.

It's defined in arch/s390/include/uapi/asm/posix_types.h

    #ifndef __s390x__

    typedef unsigned long   __kernel_ino_t;
    ...
    #else /* __s390x__ */

    typedef unsigned int    __kernel_ino_t;

So the #ifdef condition is wrong for s390x, we can just still use
one cifs_uniqueid_to_ino_t() function with comparing sizeof(ino_t)
and sizeof(u64) to choose the correct execution accordingly.

Signed-off-by: Yadan Fan <ydfan@suse.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-03-09 15:34:50 -08:00
..
2015-05-20 13:12:51 -05:00
2016-02-25 12:01:18 -08:00
2015-11-03 10:10:36 -06:00
2015-06-27 20:23:32 -07:00
2014-12-14 14:55:57 -06:00
2015-11-03 10:10:36 -06:00
2012-07-24 10:25:13 -05:00
2013-09-08 14:54:24 -05:00