return -EINVAL;
 
        if (is_bdev) {
+#ifdef CONFIG_BLOCK
                if (!sb_set_blocksize(sb, d.blksize))
                        return -EINVAL;
+#endif
        } else {
                sb->s_blocksize = PAGE_CACHE_SIZE;
                sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
        return get_sb_nodev(fs_type, flags, raw_data, fuse_fill_super, mnt);
 }
 
+static struct file_system_type fuse_fs_type = {
+       .owner          = THIS_MODULE,
+       .name           = "fuse",
+       .get_sb         = fuse_get_sb,
+       .kill_sb        = kill_anon_super,
+};
+
+#ifdef CONFIG_BLOCK
 static int fuse_get_sb_blk(struct file_system_type *fs_type,
                           int flags, const char *dev_name,
                           void *raw_data, struct vfsmount *mnt)
                           mnt);
 }
 
-static struct file_system_type fuse_fs_type = {
-       .owner          = THIS_MODULE,
-       .name           = "fuse",
-       .get_sb         = fuse_get_sb,
-       .kill_sb        = kill_anon_super,
-};
-
 static struct file_system_type fuseblk_fs_type = {
        .owner          = THIS_MODULE,
        .name           = "fuseblk",
        .fs_flags       = FS_REQUIRES_DEV,
 };
 
+static inline int register_fuseblk(void)
+{
+       return register_filesystem(&fuseblk_fs_type);
+}
+
+static inline void unregister_fuseblk(void)
+{
+       unregister_filesystem(&fuseblk_fs_type);
+}
+#else
+static inline int register_fuseblk(void)
+{
+       return 0;
+}
+
+static inline void unregister_fuseblk(void)
+{
+}
+#endif
+
 static decl_subsys(fuse, NULL, NULL);
 static decl_subsys(connections, NULL, NULL);
 
        if (err)
                goto out;
 
-       err = register_filesystem(&fuseblk_fs_type);
+       err = register_fuseblk();
        if (err)
                goto out_unreg;
 
        return 0;
 
  out_unreg2:
-       unregister_filesystem(&fuseblk_fs_type);
+       unregister_fuseblk();
  out_unreg:
        unregister_filesystem(&fuse_fs_type);
  out:
 static void fuse_fs_cleanup(void)
 {
        unregister_filesystem(&fuse_fs_type);
-       unregister_filesystem(&fuseblk_fs_type);
+       unregister_fuseblk();
        kmem_cache_destroy(fuse_inode_cachep);
 }