From: Jan Glauber <jglauber@digitalocean.com>
Date: Wed, 17 Mar 2021 15:04:39 +0100
Subject: [PATCH] md: Fix missing unused status line of /proc/mdstat
Git-commit: 7abfabaf5f805f5171d133ce6af9b65ab766e76a
Patch-mainline: v5.13
References: git-fixes
Reading /proc/mdstat with a read buffer size that would not
fit the unused status line in the first read will skip this
line from the output.
So 'dd if=/proc/mdstat bs=64 2>/dev/null' will not print something
Like: unused devices: <none>
Don't return NULL immediately in start() for v=2 but call
show() once to print the status line also for multiple reads.
Cc: stable@vger.kernel.org
Fixes: 1f4aace60b0e ("fs/seq_file.c: simplify seq_file iteration code and interface")
Signed-off-by: Jan Glauber <jglauber@digitalocean.com>
Signed-off-by: Song Liu <songliubraving@fb.com>
Acked-by: NeilBrown <neilb@suse.com>
---
drivers/md/md.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -8061,7 +8061,11 @@ static void *md_seq_start(struct seq_fil
loff_t l = *pos;
struct mddev *mddev;
- if (l >= 0x10000)
+ if (l == 0x10000) {
+ ++*pos;
+ return (void *)2;
+ }
+ if (l > 0x10000)
return NULL;
if (!l--)
/* header */