Thread (5 messages) flat view 5 messages, 3 authors, 2021-11-02

Re: [PATCH 1/1] mdadm/Detail: Can't show container name correctly when unpluging disks

From: Jes Sorensen <hidden>
Date: 2021-11-02 16:00:20

On 10/21/21 8:09 PM, Xiao Ni wrote:
On Thu, Oct 21, 2021 at 5:13 PM Tkaczyk, Mariusz
[off-list ref] wrote:
quoted
Hi Xiao,
On 20.10.2021 16:38, Xiao Ni wrote:
quoted
+             char dv[32], dv_rep[32];
+
+             sprintf(dv, "/sys/dev/block/%d:%d",
+                             disks[d*2].major, disks[d*2].minor);
+             sprintf(dv_rep, "/sys/dev/block/%d:%d",
+                             disks[d*2+1].major, disks[d*2+1].minor);Please use snprintf and PATH_MAX instead 32.
+
+             if ((!access(dv, R_OK) &&
+                 (disks[d*2].state & (1<<MD_DISK_SYNC))) ||
IMO not correct style, please verify with checkpatch.
should be: [d * 2]
Hi Mariusz

I ran checkpatch before sending this patch. The checkpatch I used is
from Song's git
(https://git.kernel.org/pub/scm/linux/kernel/git/song/md.git). It only
reports one warning
like this:

WARNING: Unknown commit id 'db5377883fef', maybe rebased or not pulled?
#34:
Fixes: db5377883fef (It should be FAILED when raid has)

total: 0 errors, 1 warnings, 25 lines checked

It's right. Because the commit is from mdadm git. Do we use different
checkpatch?
checkpatch is awful in general, but I agree with Mariusz, adding the
spaces is a lot prettier.
quoted
quoted
+                 (!access(dv_rep, R_OK) &&
+                 (disks[d*2+1].state & (1<<MD_DISK_SYNC)))) {
Could you define function for that?
something like (you can add access() verification if needed):
is_dev_alive(mdu_disk_info_t *disk)
{
        char *devnm = devid2kname(makedev..);
        if (devnm)
                return true;
        return false;
}
Sure, it sounds better. I'll do this in the next version.
quoted
using true/false will require to add #include <stdbool.h>.
Jes suggests to use meaningful return values. This is only
suggestion so you can ignore it and use 0 and 1.
<stdbool.h> is a c++ header and it needs libstdc++-devel, I don't want
to include one package only for using true/false.
stdbool.h is provided by GCC directly on Fedora 33 it's
/usr/lib/gcc/x86_64-redhat-linux/10/include/stdbool.h
quoted
and then check:
if (is_dev_alive([d * 2]) & disks[d * 2].state & (1<<MD_DISK_SYNC) ||
    (is_dev_alive([d * 2 + 1]) & disks[d * 2 + 1].state & (1<<MD_DISK_SYNC))

What do you think?
It's good for me.
I think using bool for this makes sense when the helper is called
'is_dev_alive()' (as much as I dislike the bool type).

Cheers,
Jes

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help