#include <linux/namei.h>
 #include <linux/seq_file.h>
 #include <linux/exportfs.h>
+#include <linux/uuid.h>
+#include <linux/statfs.h>
 
 #include "kernfs-internal.h"
 
        return 0;
 }
 
+static int kernfs_statfs(struct dentry *dentry, struct kstatfs *buf)
+{
+       simple_statfs(dentry, buf);
+       buf->f_fsid = uuid_to_fsid(dentry->d_sb->s_uuid.b);
+       return 0;
+}
+
 const struct super_operations kernfs_sops = {
-       .statfs         = simple_statfs,
+       .statfs         = kernfs_statfs,
        .drop_inode     = generic_delete_inode,
        .evict_inode    = kernfs_evict_inode,
 
                }
                sb->s_flags |= SB_ACTIVE;
 
+               uuid_gen(&sb->s_uuid);
+
                down_write(&root->kernfs_supers_rwsem);
                list_add(&info->node, &info->root->supers);
                up_write(&root->kernfs_supers_rwsem);