Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2:Ports
mdadm
0009-super1-add-more-checks-for-NodeNumUpdate-o...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0009-super1-add-more-checks-for-NodeNumUpdate-option.patch of Package mdadm
From 400ed101278429299d6fdda2357777e5b0a55628 Mon Sep 17 00:00:00 2001 From: Guoqing Jiang <gqjiang@suse.com> Date: Wed, 11 May 2016 15:02:50 +0800 Subject: [PATCH] super1: add more checks for NodeNumUpdate option There are some cases which didn't need to check the space is enough or not for NodeNumUpdate option. 1. for array which does not have clustered bitmap. 2. "--nodes" parameter is 0 (eg, add a disk to clustered raid). 3. if "--nodes" parameter is set to a smaller num than current bms->nodes. Signed-off-by: Guoqing Jiang <gqjiang@suse.com> --- super1.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/super1.c b/super1.c index fa93367..3d25fae 100644 --- a/super1.c +++ b/super1.c @@ -2394,9 +2394,25 @@ static int write_bitmap1(struct supertype *st, int fd, enum bitmap_update update return -EINVAL; } - if (bms->version == BITMAP_MAJOR_CLUSTERED && st->nodes <= 1) { - pr_err("Warning: cluster-md at least needs two nodes\n"); - return -EINVAL; + if (bms->version == BITMAP_MAJOR_CLUSTERED) { + if (st->nodes == 1) { + /* the parameter for nodes is not valid */ + pr_err("Warning: cluster-md at least needs two nodes\n"); + return -EINVAL; + } else if (st->nodes == 0) + /* --nodes is not specified */ + break; + else if (__cpu_to_le32(st->nodes) < bms->nodes) { + /* Since the nodes num is not increased, no need to check the space + * is enough or not, just update bms->nodes */ + bms->nodes = __cpu_to_le32(st->nodes); + break; + } + } else { + /* no need to change bms->nodes for other bitmap types */ + if (st->nodes) + pr_err("Warning: --nodes option is only suitable for clustered bitmap\n"); + break; } /* Each node has an independent bitmap, it is necessary to calculate the -- 2.6.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor