lkml.org 
[lkml]   [2023]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 2/3] md/raid10: factor out get_rdev_repl_from_mirror()
From


在 2023/7/1 7:53, Song Liu 写道:
> On Tue, Jun 27, 2023 at 6:58 PM <linan666@huaweicloud.com> wrote:
>>
> [...]
>
>>
>> +static void get_rdev_repl_from_mirror(struct raid10_info *mirror,
>> + struct md_rdev **prdev,
>> + struct md_rdev **prrdev)
>> +{
>> + struct md_rdev *rdev, *rrdev;
>> +
>> + rrdev = rcu_dereference(mirror->replacement);
>> + /*
>> + * Read replacement first to prevent reading both rdev and
>> + * replacement as NULL during replacement replace rdev.
>> + */
>> + smp_mb();
>> + rdev = rcu_dereference(mirror->rdev);
>> + if (rdev == rrdev)
>> + rrdev = NULL;
>> +
>> + *prrdev = rrdev;
>> + *prdev = rdev;
>
> I don't think the reduction in duplicated code justifies two output arguments.
>
> How about
>
> static struct md_rdev *dereference_rdev_and_rrdev(struct raid10_info *mirror,
> struct md_rdev **prrdev)
> {
> ...
> *prrdev = xxx;
> return rdev;
> }
>
> So we only have one argument for output.
>
> Also, "from_mirror" in the function name doesn't really add more value.
>
> Thanks,
> Song
> .

I agree. Let me improve this.

--
Thanks,
Nan

\
 
 \ /
  Last update: 2023-07-01 03:41    [W:0.170 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site