Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 374916ed authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'md-3.5-fixes' of git://neil.brown.name/md

Pull two md fixes from NeilBrown:
 "One sparse-warning fix, one bugfix for 3.4-stable"

* tag 'md-3.5-fixes' of git://neil.brown.name/md:
  md: raid1/raid10: fix problem with merge_bvec_fn
  lib/raid6: fix sparse warnings in recovery functions
parents 9e68447f aba336bd
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2550,6 +2550,7 @@ static struct r1conf *setup_conf(struct mddev *mddev)
	err = -EINVAL;
	spin_lock_init(&conf->device_lock);
	rdev_for_each(rdev, mddev) {
		struct request_queue *q;
		int disk_idx = rdev->raid_disk;
		if (disk_idx >= mddev->raid_disks
		    || disk_idx < 0)
@@ -2562,6 +2563,9 @@ static struct r1conf *setup_conf(struct mddev *mddev)
		if (disk->rdev)
			goto abort;
		disk->rdev = rdev;
		q = bdev_get_queue(rdev->bdev);
		if (q->merge_bvec_fn)
			mddev->merge_check_needed = 1;

		disk->head_position = 0;
	}
+4 −0
Original line number Diff line number Diff line
@@ -3475,6 +3475,7 @@ static int run(struct mddev *mddev)

	rdev_for_each(rdev, mddev) {
		long long diff;
		struct request_queue *q;

		disk_idx = rdev->raid_disk;
		if (disk_idx < 0)
@@ -3493,6 +3494,9 @@ static int run(struct mddev *mddev)
				goto out_free_conf;
			disk->rdev = rdev;
		}
		q = bdev_get_queue(rdev->bdev);
		if (q->merge_bvec_fn)
			mddev->merge_check_needed = 1;
		diff = (rdev->new_data_offset - rdev->data_offset);
		if (!mddev->reshape_backwards)
			diff = -diff;
+4 −3
Original line number Diff line number Diff line
@@ -22,8 +22,8 @@
#include <linux/raid/pq.h>

/* Recover two failed data blocks. */
void raid6_2data_recov_intx1(int disks, size_t bytes, int faila, int failb,
		       void **ptrs)
static void raid6_2data_recov_intx1(int disks, size_t bytes, int faila,
		int failb, void **ptrs)
{
	u8 *p, *q, *dp, *dq;
	u8 px, qx, db;
@@ -66,7 +66,8 @@ void raid6_2data_recov_intx1(int disks, size_t bytes, int faila, int failb,
}

/* Recover failure of one data block plus the P block */
void raid6_datap_recov_intx1(int disks, size_t bytes, int faila, void **ptrs)
static void raid6_datap_recov_intx1(int disks, size_t bytes, int faila,
		void **ptrs)
{
	u8 *p, *q, *dq;
	const u8 *qmul;		/* Q multiplier table */
+4 −3
Original line number Diff line number Diff line
@@ -19,8 +19,8 @@ static int raid6_has_ssse3(void)
		boot_cpu_has(X86_FEATURE_SSSE3);
}

void raid6_2data_recov_ssse3(int disks, size_t bytes, int faila, int failb,
		       void **ptrs)
static void raid6_2data_recov_ssse3(int disks, size_t bytes, int faila,
		int failb, void **ptrs)
{
	u8 *p, *q, *dp, *dq;
	const u8 *pbmul;	/* P multiplier table for B data */
@@ -194,7 +194,8 @@ void raid6_2data_recov_ssse3(int disks, size_t bytes, int faila, int failb,
}


void raid6_datap_recov_ssse3(int disks, size_t bytes, int faila, void **ptrs)
static void raid6_datap_recov_ssse3(int disks, size_t bytes, int faila,
		void **ptrs)
{
	u8 *p, *q, *dq;
	const u8 *qmul;		/* Q multiplier table */