If the free space bitmap pointer is corrupted such that it lies outside
of the number of blocks in the filesystem, print a message and fail the
mount so the user can fix it offline.
Signed-off-by: Bob Copeland <me@bobcopeland.com>
                goto out_brelse_bh2;
        }
 
+       if (sbi->s_bitmap_ino != ~0ULL &&
+           sbi->s_bitmap_ino > sbi->s_num_blocks) {
+               printk(KERN_ERR "omfs: free space bitmap location is corrupt "
+                       "(%llx, total blocks %llx)\n",
+                       (unsigned long long) sbi->s_bitmap_ino,
+                       (unsigned long long) sbi->s_num_blocks);
+               goto out_brelse_bh2;
+       }
+
        ret = omfs_get_imap(sb);
        if (ret)
                goto out_brelse_bh2;