diff --git a/block/genhd.c b/block/genhd.c
index ceb08af72c1a27547bae6f04e5ef769b274c9754..e1b2f898d790f53263caf6ef8d1c75029129920b 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -1092,8 +1092,17 @@ static void disk_release(struct device *dev)
 		blk_put_queue(disk->queue);
 	iput(disk->part0->bd_inode);	/* frees the disk */
 }
+
+static int block_uevent(struct device *dev, struct kobj_uevent_env *env)
+{
+	struct gendisk *disk = dev_to_disk(dev);
+
+	return add_uevent_var(env, "DISKSEQ=%llu", disk->diskseq);
+}
+
 struct class block_class = {
 	.name		= "block",
+	.dev_uevent	= block_uevent,
 };
 
 static char *block_devnode(struct device *dev, umode_t *mode,