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

Commit d1d4bb9c authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

Pull two md bugfixes from NeilBrown:
 "One (missing spinlock init) was only introduced recently.  The other
  has been present as long as raid10 has been supported, so is tagged
  for -stable."

* tag 'md-3.6-fixes' of git://neil.brown.name/md:
  md/raid10: fix "enough" function for detecting if array is failed.
  md/raid5: add missing spin_lock_init.
parents 5030fcbf 80b48124
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1512,14 +1512,16 @@ static int _enough(struct r10conf *conf, struct geom *geo, int ignore)
	do {
		int n = conf->copies;
		int cnt = 0;
		int this = first;
		while (n--) {
			if (conf->mirrors[first].rdev &&
			    first != ignore)
			if (conf->mirrors[this].rdev &&
			    this != ignore)
				cnt++;
			first = (first+1) % geo->raid_disks;
			this = (this+1) % geo->raid_disks;
		}
		if (cnt == 0)
			return 0;
		first = (first + geo->near_copies) % geo->raid_disks;
	} while (first != 0);
	return 1;
}
+1 −0
Original line number Diff line number Diff line
@@ -1591,6 +1591,7 @@ static int resize_stripes(struct r5conf *conf, int newsize)
		#ifdef CONFIG_MULTICORE_RAID456
		init_waitqueue_head(&nsh->ops.wait_for_ops);
		#endif
		spin_lock_init(&nsh->stripe_lock);

		list_add(&nsh->lru, &newstripes);
	}