diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-03-26 17:16:14 +0000 | 
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-03-26 17:16:14 +0000 | 
| commit | 49bc389ec2318b75e86a3c3239a495d7a8311046 (patch) | |
| tree | 5fe953bd06a535b262ac3da29ab9aa09e5a57d8c /drivers/md/raid1.c | |
| parent | aed9913e6fad5a7eccce2b7a3ee6daa96b575157 (diff) | |
| parent | df8c3dbee9e6f19ddb0ae8e05cdf76eb2d3b7f00 (diff) | |
| download | olio-linux-3.10-49bc389ec2318b75e86a3c3239a495d7a8311046.tar.xz olio-linux-3.10-49bc389ec2318b75e86a3c3239a495d7a8311046.zip  | |
Merge tag 'arizona-extcon-asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc into asoc-arizona
ASoC/extcon: arizona: Fix interaction between HPDET and headphone outputs
This patch series covers both ASoC and extcon subsystems and fixes an
interaction between the HPDET function and the headphone outputs - we
really shouldn't run HPDET while the headphone is active.  The first
patch is a refactoring to make the extcon side easier.
Diffstat (limited to 'drivers/md/raid1.c')
| -rw-r--r-- | drivers/md/raid1.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index d5bddfc4010..fd86b372692 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -967,6 +967,7 @@ static void raid1_unplug(struct blk_plug_cb *cb, bool from_schedule)  		bio_list_merge(&conf->pending_bio_list, &plug->pending);  		conf->pending_count += plug->pending_cnt;  		spin_unlock_irq(&conf->device_lock); +		wake_up(&conf->wait_barrier);  		md_wakeup_thread(mddev->thread);  		kfree(plug);  		return; @@ -1000,6 +1001,7 @@ static void make_request(struct mddev *mddev, struct bio * bio)  	const unsigned long do_flush_fua = (bio->bi_rw & (REQ_FLUSH | REQ_FUA));  	const unsigned long do_discard = (bio->bi_rw  					  & (REQ_DISCARD | REQ_SECURE)); +	const unsigned long do_same = (bio->bi_rw & REQ_WRITE_SAME);  	struct md_rdev *blocked_rdev;  	struct blk_plug_cb *cb;  	struct raid1_plug_cb *plug = NULL; @@ -1301,7 +1303,8 @@ read_again:  				   conf->mirrors[i].rdev->data_offset);  		mbio->bi_bdev = conf->mirrors[i].rdev->bdev;  		mbio->bi_end_io	= raid1_end_write_request; -		mbio->bi_rw = WRITE | do_flush_fua | do_sync | do_discard; +		mbio->bi_rw = +			WRITE | do_flush_fua | do_sync | do_discard | do_same;  		mbio->bi_private = r1_bio;  		atomic_inc(&r1_bio->remaining); @@ -2818,6 +2821,9 @@ static int run(struct mddev *mddev)  	if (IS_ERR(conf))  		return PTR_ERR(conf); +	if (mddev->queue) +		blk_queue_max_write_same_sectors(mddev->queue, +						 mddev->chunk_sectors);  	rdev_for_each(rdev, mddev) {  		if (!mddev->gendisk)  			continue;  |