• Eric Sandeen's avatar
    [XFS] fix filestreams on 32-bit boxes · bcc7b445
    Eric Sandeen authored
    xfs_filestream_mount() sets up an mru cache with:
      err = xfs_mru_cache_create(&mp->m_filestream, lifetime, grp_count,
      (xfs_mru_cache_free_func_t)xfs_fstrm_free_func);
    but that cast is causing problems...
      typedef void (*xfs_mru_cache_free_func_t)(unsigned long, void*);
    but:
      void xfs_fstrm_free_func( xfs_ino_t ino, fstrm_item_t *item)
    so on a 32-bit box, it's casting (32, 32) args into (64, 32) and I assume
    it's getting garbage for *item, which subsequently causes an explosion.
    With this change the filestreams xfsqa tests don't oops on my 32-bit box.
    
    SGI-PV: 967795
    SGI-Modid: xfs-linux-melb:xfs-kern:29510a
    Signed-off-by: default avatarEric Sandeen <sandeen@sandeen.net>
    Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
    Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
    bcc7b445
xfs_filestream.c 20.9 KB