Skip to content

Commit

Permalink
ABD style cleanups
Browse files Browse the repository at this point in the history
The commit a6255b7 removed a few
assertions which help catch errors and improve code readability. It also
duplicated two conditionals, which was unnecessary and made the code
confusing to read. This patch cleans it up.

Reviewed-by: David Quigley <david.quigley@intel.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Isaac Huang <he.huang@intel.com>
Closes openzfs#5802
  • Loading branch information
huangheintel authored and behlendorf committed Feb 24, 2017
1 parent 384328e commit f7e7682
Showing 1 changed file with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions module/zfs/vdev_raidz.c
Original file line number Diff line number Diff line change
Expand Up @@ -591,20 +591,20 @@ vdev_raidz_generate_parity_pq(raidz_map_t *rm)
ccnt = rm->rm_col[c].rc_size / sizeof (p[0]);

if (c == rm->rm_firstdatacol) {
ASSERT(ccnt == pcnt || ccnt == 0);
abd_copy_to_buf(p, src, rm->rm_col[c].rc_size);
(void) memcpy(q, p, rm->rm_col[c].rc_size);
} else {
struct pqr_struct pqr = { p, q, NULL };
(void) abd_iterate_func(src, 0, rm->rm_col[c].rc_size,
vdev_raidz_pq_func, &pqr);
}

if (c == rm->rm_firstdatacol) {
for (i = ccnt; i < pcnt; i++) {
p[i] = 0;
q[i] = 0;
}
} else {
struct pqr_struct pqr = { p, q, NULL };

ASSERT(ccnt <= pcnt);
(void) abd_iterate_func(src, 0, rm->rm_col[c].rc_size,
vdev_raidz_pq_func, &pqr);

/*
* Treat short columns as though they are full of 0s.
Expand Down Expand Up @@ -639,22 +639,23 @@ vdev_raidz_generate_parity_pqr(raidz_map_t *rm)
ccnt = rm->rm_col[c].rc_size / sizeof (p[0]);

if (c == rm->rm_firstdatacol) {
ASSERT(ccnt == pcnt || ccnt == 0);
abd_copy_to_buf(p, src, rm->rm_col[c].rc_size);
(void) memcpy(q, p, rm->rm_col[c].rc_size);
(void) memcpy(r, p, rm->rm_col[c].rc_size);
} else {
struct pqr_struct pqr = { p, q, r };
(void) abd_iterate_func(src, 0, rm->rm_col[c].rc_size,
vdev_raidz_pqr_func, &pqr);
}

if (c == rm->rm_firstdatacol) {
for (i = ccnt; i < pcnt; i++) {
p[i] = 0;
q[i] = 0;
r[i] = 0;
}
} else {
struct pqr_struct pqr = { p, q, r };

ASSERT(ccnt <= pcnt);
(void) abd_iterate_func(src, 0, rm->rm_col[c].rc_size,
vdev_raidz_pqr_func, &pqr);

/*
* Treat short columns as though they are full of 0s.
* Note that there's therefore nothing needed for P.
Expand Down

0 comments on commit f7e7682

Please sign in to comment.