{
   struct reiserfs_super_block super;
   int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
+  char *cache;
 
   if (part_length < superblock + (sizeof (super) >> SECTOR_BITS)
       || ! reiserfs_devread (superblock, 0, sizeof (struct reiserfs_super_block),
   if (! block_read (sb_root_block(&super), 0, INFO->blocksize, (char*) ROOT))
     return 0;
 
-  INFO->tree_depth = __le16_to_cpu(BLOCKHEAD (ROOT)->blk_level);
+  cache = ROOT;
+  INFO->tree_depth = __le16_to_cpu(BLOCKHEAD (cache)->blk_level);
 
 #ifdef REISERDEBUG
   printf ("root read_in: block=%d, depth=%d\n",