From: Nick Wellnhofer hfs_fill_super in 2.6.5 returns -EIO instead of -EINVAL if a valid supe= block isn't found. So mount_block_root in init/do_mounts.c bails out before trying to mount the root device as XFS. --- 25-akpm/fs/hfs/super.c | 1 + 1 files changed, 1 insertion(+) diff -puN fs/hfs/super.c~wrong-return-value-in-hfs_fill_super fs/hfs/super.c --- 25/fs/hfs/super.c~wrong-return-value-in-hfs_fill_super Mon Apr 12 13:54:36 2004 +++ 25-akpm/fs/hfs/super.c Mon Apr 12 13:54:36 2004 @@ -276,6 +276,7 @@ static int hfs_fill_super(struct super_b if (!silent) hfs_warn("VFS: Can't find a HFS filesystem on dev %s.\n", hfs_mdb_name(sb)); + res = -EINVAL; goto bail2; } _