diff --git a/drivers/md/md.c b/drivers/md/md.c
index 220e8e6fb7bb0d400b8c8e52ef96cb44e25a6ae9..afff038ecf6f209d0227c1aeef8ad7381ca72b3f 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -4941,15 +4941,6 @@ static int md_seq_open(struct inode *inode, struct file *file)
 	return error;
 }
 
-static int md_seq_release(struct inode *inode, struct file *file)
-{
-	struct seq_file *m = file->private_data;
-	struct mdstat_info *mi = m->private;
-	m->private = NULL;
-	kfree(mi);
-	return seq_release(inode, file);
-}
-
 static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
 {
 	struct seq_file *m = filp->private_data;
@@ -4971,7 +4962,7 @@ static const struct file_operations md_seq_fops = {
 	.open           = md_seq_open,
 	.read           = seq_read,
 	.llseek         = seq_lseek,
-	.release	= md_seq_release,
+	.release	= seq_release_private,
 	.poll		= mdstat_poll,
 };