Merge branch 'md-next' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-5.16/drivers
Pull MD updates from Song: "The only significant change here is a fix in back_log sysfs entry, by Guoqing Jiang." * 'md-next' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md: raid5-ppl: use swap() to make code cleaner md/bitmap: don't set max_write_behind if there is no write mostly device
This commit is contained in:
Коммит
579b517474
|
@ -2469,11 +2469,30 @@ backlog_store(struct mddev *mddev, const char *buf, size_t len)
|
|||
{
|
||||
unsigned long backlog;
|
||||
unsigned long old_mwb = mddev->bitmap_info.max_write_behind;
|
||||
struct md_rdev *rdev;
|
||||
bool has_write_mostly = false;
|
||||
int rv = kstrtoul(buf, 10, &backlog);
|
||||
if (rv)
|
||||
return rv;
|
||||
if (backlog > COUNTER_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* Without write mostly device, it doesn't make sense to set
|
||||
* backlog for max_write_behind.
|
||||
*/
|
||||
rdev_for_each(rdev, mddev) {
|
||||
if (test_bit(WriteMostly, &rdev->flags)) {
|
||||
has_write_mostly = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!has_write_mostly) {
|
||||
pr_warn_ratelimited("%s: can't set backlog, no write mostly device available\n",
|
||||
mdname(mddev));
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
mddev->bitmap_info.max_write_behind = backlog;
|
||||
if (!backlog && mddev->serial_info_pool) {
|
||||
/* serial_info_pool is not needed if backlog is zero */
|
||||
|
|
|
@ -1081,7 +1081,7 @@ static int ppl_load_distributed(struct ppl_log *log)
|
|||
struct ppl_conf *ppl_conf = log->ppl_conf;
|
||||
struct md_rdev *rdev = log->rdev;
|
||||
struct mddev *mddev = rdev->mddev;
|
||||
struct page *page, *page2, *tmp;
|
||||
struct page *page, *page2;
|
||||
struct ppl_header *pplhdr = NULL, *prev_pplhdr = NULL;
|
||||
u32 crc, crc_stored;
|
||||
u32 signature;
|
||||
|
@ -1156,9 +1156,7 @@ static int ppl_load_distributed(struct ppl_log *log)
|
|||
prev_pplhdr_offset = pplhdr_offset;
|
||||
prev_pplhdr = pplhdr;
|
||||
|
||||
tmp = page;
|
||||
page = page2;
|
||||
page2 = tmp;
|
||||
swap(page, page2);
|
||||
|
||||
/* calculate next potential ppl offset */
|
||||
for (i = 0; i < le32_to_cpu(pplhdr->entries_count); i++)
|
||||
|
|
Загрузка…
Ссылка в новой задаче