• Mathieu Desnoyers's avatar
    Fix f_version type: should be u64 instead of unsigned long · 2b47c361
    Mathieu Desnoyers authored
    Fix f_version type: should be u64 instead of long
    
    There is a type inconsistency between struct inode i_version and struct file
    f_version.
    
    fs.h:
    
    struct inode
      u64                     i_version;
    
    and
    
    struct file
      unsigned long           f_version;
    
    Users do:
    
    fs/ext3/dir.c:
    
    if (filp->f_version != inode->i_version) {
    
    So why isn't f_version a u64 ? It becomes a problem if versions gets
    higher than 2^32 and we are on an architecture where longs are 32 bits.
    
    This patch changes the f_version type to u64, and updates the users accordingly.
    
    It applies to 2.6.23-rc2-mm2.
    Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
    Cc: Martin Bligh <mbligh@google.com>
    Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
    Cc: Al Viro <viro@ftp.linux.org.uk>
    Cc: <linux-ext4@vger.kernel.org>
    Cc: Mark Fasheh <mark.fasheh@oracle.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: "J. Bruce Fields" <bfields@fieldses.org>
    Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2b47c361
base.c 61.1 KB