This patch addresses TODO in "./drivers/md/md.c:6752".
Add journal struct member to mdu_array_info_t in "md_u.h".
Add the journal field in get_array_info function in "md.c".
Need feedback on if the update_array_info function needs to be updated.
Signed-off-by: Abhinav Jain <jain.abhinav177@xxxxxxxxx>
---
drivers/md/md.c | 8 ++++----
include/uapi/linux/raid/md_u.h | 1 +
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index e575e74aabf5..4958d6e21923 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -6735,10 +6735,10 @@ static int get_version(void __user *arg)
static int get_array_info(struct mddev *mddev, void __user *arg)
{
mdu_array_info_t info;
- int nr,working,insync,failed,spare;
+ int nr, working, insync, failed, spare, journal;
struct md_rdev *rdev;
- nr = working = insync = failed = spare = 0;
+ nr = working = insync = failed = spare = journal = 0;
rcu_read_lock();
rdev_for_each_rcu(rdev, mddev) {
nr++;
@@ -6749,8 +6749,7 @@ static int get_array_info(struct mddev *mddev, void __user *arg)
if (test_bit(In_sync, &rdev->flags))
insync++;
else if (test_bit(Journal, &rdev->flags))
- /* TODO: add journal count to md_u.h */
- ;
+ journal++;
else
spare++;
}
@@ -6769,6 +6768,7 @@ static int get_array_info(struct mddev *mddev, void __user *arg)
info.raid_disks = mddev->raid_disks;
info.md_minor = mddev->md_minor;
info.not_persistent= !mddev->persistent;
+ info.journal = journal;
info.utime = clamp_t(time64_t, mddev->utime, 0, U32_MAX);
info.state = 0;
diff --git a/include/uapi/linux/raid/md_u.h b/include/uapi/linux/raid/md_u.h
index 7be89a4906e7..485befa2205d 100644
--- a/include/uapi/linux/raid/md_u.h
+++ b/include/uapi/linux/raid/md_u.h
@@ -84,6 +84,7 @@ typedef struct mdu_array_info_s {
int raid_disks;
int md_minor;
int not_persistent;
+ int journal;
/*
* Generic state information