diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-17 16:39:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-17 16:39:11 -0500 |
commit | 9228ff90387e276ad67b10c0eb525c9d6a57d5e9 (patch) | |
tree | e7c87b68daba7cf7ca4c342c6b52165bd78fbe16 /drivers/md/raid1.c | |
parent | 9360b53661a2c7754517b2925580055bacc8ec38 (diff) | |
parent | d2ec180c23a5a1bfe34d8638b0342a47c00cf70f (diff) |
Merge branch 'for-3.8/drivers' of git://git.kernel.dk/linux-block
Pull block driver update from Jens Axboe:
"Now that the core bits are in, here are the driver bits for 3.8. The
branch contains:
- A huge pile of drbd bits that were dumped from the 3.7 merge
window. Following that, it was both made perfectly clear that
there is going to be no more over-the-wall pulls and how the
situation on individual pulls can be improved.
- A few cleanups from Akinobu Mita for drbd and cciss.
- Queue improvement for loop from Lukas. This grew into adding a
generic interface for waiting/checking an even with a specific
lock, allowing this to be pulled out of md and now loop and drbd is
also using it.
- A few fixes for xen back/front block driver from Roger Pau Monne.
- Partition improvements from Stephen Warren, allowing partiion UUID
to be used as an identifier."
* 'for-3.8/drivers' of git://git.kernel.dk/linux-block: (609 commits)
drbd: update Kconfig to match current dependencies
drbd: Fix drbdsetup wait-connect, wait-sync etc... commands
drbd: close race between drbd_set_role and drbd_connect
drbd: respect no-md-barriers setting also when changed online via disk-options
drbd: Remove obsolete check
drbd: fixup after wait_even_lock_irq() addition to generic code
loop: Limit the number of requests in the bio list
wait: add wait_event_lock_irq() interface
xen-blkfront: free allocated page
xen-blkback: move free persistent grants code
block: partition: msdos: provide UUIDs for partitions
init: reduce PARTUUID min length to 1 from 36
block: store partition_meta_info.uuid as a string
cciss: use check_signature()
cciss: cleanup bitops usage
drbd: use copy_highpage
drbd: if the replication link breaks during handshake, keep retrying
drbd: check return of kmalloc in receive_uuids
drbd: Broadcast sync progress no more often than once per second
drbd: don't try to clear bits once the disk has failed
...
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r-- | drivers/md/raid1.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index a0f73092176e..d5bddfc4010e 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -822,7 +822,7 @@ static void raise_barrier(struct r1conf *conf) | |||
822 | 822 | ||
823 | /* Wait until no block IO is waiting */ | 823 | /* Wait until no block IO is waiting */ |
824 | wait_event_lock_irq(conf->wait_barrier, !conf->nr_waiting, | 824 | wait_event_lock_irq(conf->wait_barrier, !conf->nr_waiting, |
825 | conf->resync_lock, ); | 825 | conf->resync_lock); |
826 | 826 | ||
827 | /* block any new IO from starting */ | 827 | /* block any new IO from starting */ |
828 | conf->barrier++; | 828 | conf->barrier++; |
@@ -830,7 +830,7 @@ static void raise_barrier(struct r1conf *conf) | |||
830 | /* Now wait for all pending IO to complete */ | 830 | /* Now wait for all pending IO to complete */ |
831 | wait_event_lock_irq(conf->wait_barrier, | 831 | wait_event_lock_irq(conf->wait_barrier, |
832 | !conf->nr_pending && conf->barrier < RESYNC_DEPTH, | 832 | !conf->nr_pending && conf->barrier < RESYNC_DEPTH, |
833 | conf->resync_lock, ); | 833 | conf->resync_lock); |
834 | 834 | ||
835 | spin_unlock_irq(&conf->resync_lock); | 835 | spin_unlock_irq(&conf->resync_lock); |
836 | } | 836 | } |
@@ -864,8 +864,7 @@ static void wait_barrier(struct r1conf *conf) | |||
864 | (conf->nr_pending && | 864 | (conf->nr_pending && |
865 | current->bio_list && | 865 | current->bio_list && |
866 | !bio_list_empty(current->bio_list)), | 866 | !bio_list_empty(current->bio_list)), |
867 | conf->resync_lock, | 867 | conf->resync_lock); |
868 | ); | ||
869 | conf->nr_waiting--; | 868 | conf->nr_waiting--; |
870 | } | 869 | } |
871 | conf->nr_pending++; | 870 | conf->nr_pending++; |
@@ -898,10 +897,10 @@ static void freeze_array(struct r1conf *conf) | |||
898 | spin_lock_irq(&conf->resync_lock); | 897 | spin_lock_irq(&conf->resync_lock); |
899 | conf->barrier++; | 898 | conf->barrier++; |
900 | conf->nr_waiting++; | 899 | conf->nr_waiting++; |
901 | wait_event_lock_irq(conf->wait_barrier, | 900 | wait_event_lock_irq_cmd(conf->wait_barrier, |
902 | conf->nr_pending == conf->nr_queued+1, | 901 | conf->nr_pending == conf->nr_queued+1, |
903 | conf->resync_lock, | 902 | conf->resync_lock, |
904 | flush_pending_writes(conf)); | 903 | flush_pending_writes(conf)); |
905 | spin_unlock_irq(&conf->resync_lock); | 904 | spin_unlock_irq(&conf->resync_lock); |
906 | } | 905 | } |
907 | static void unfreeze_array(struct r1conf *conf) | 906 | static void unfreeze_array(struct r1conf *conf) |