Lukas Czerner
eed8c02e68
wait: add wait_event_lock_irq() interface
...
New wait_event{_interruptible}_lock_irq{_cmd} macros added. This commit
moves the private wait_event_lock_irq() macro from MD to regular wait
includes, introduces new macro wait_event_lock_irq_cmd() instead of using
the old method with omitting cmd parameter which is ugly and makes a use
of new macros in the MD. It also introduces the _interruptible_ variant.
The use of new interface is when one have a special lock to protect data
structures used in the condition, or one also needs to invoke "cmd"
before putting it to sleep.
All new macros are expected to be called with the lock taken. The lock
is released before sleep and is reacquired afterwards. We will leave the
macro with the lock held.
Note to DM: IMO this should also fix theoretical race on waitqueue while
using simultaneously wait_event_lock_irq() and wait_event() because of
lack of locking around current state setting and wait queue removal.
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Cc: Neil Brown <neilb@suse.de>
Cc: David Howells <dhowells@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2012-11-30 11:47:57 +01:00
..
persistent-data
dm persistent data: convert to use le32_add_cpu
2012-10-12 16:59:47 +01:00
bitmap.c
md/bitmap:Don't use IS_ERR to judge alloc_page().
2012-10-11 13:45:36 +11:00
bitmap.h
dm-bio-prison.c
dm thin: move bio_prison code to separate module
2012-10-12 21:02:13 +01:00
dm-bio-prison.h
dm thin: move bio_prison code to separate module
2012-10-12 21:02:13 +01:00
dm-bio-record.h
dm-bufio.c
dm: use ACCESS_ONCE for sysfs values
2012-10-12 16:59:46 +01:00
dm-bufio.h
dm-crypt.c
block: Add bio_clone_bioset(), bio_clone_kmalloc()
2012-09-09 10:35:39 +02:00
dm-delay.c
dm thin: commit before gathering status
2012-07-27 15:08:16 +01:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm thin: commit before gathering status
2012-07-27 15:08:16 +01:00
dm-io.c
block: Generalized bio pool freeing
2012-09-09 10:35:38 +02:00
dm-ioctl.c
dm thin: commit before gathering status
2012-07-27 15:08:16 +01:00
dm-kcopyd.c
dm-linear.c
dm thin: commit before gathering status
2012-07-27 15:08:16 +01:00
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log.c
dm: use memweight()
2012-07-30 17:25:16 -07:00
dm-mpath.c
dm mpath: fix check for null mpio in end_io fn
2012-10-12 16:59:42 +01:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid.c
DM RAID: Fix for "sync" directive ineffectiveness
2012-10-11 13:42:19 +11:00
dm-raid1.c
workqueue: deprecate flush[_delayed]_work_sync()
2012-08-20 14:51:24 -07:00
dm-region-hash.c
dm-round-robin.c
dm-service-time.c
dm-snap-persistent.c
dm-snap-transient.c
dm-snap.c
dm thin: commit before gathering status
2012-07-27 15:08:16 +01:00
dm-stripe.c
workqueue: deprecate flush[_delayed]_work_sync()
2012-08-20 14:51:24 -07:00
dm-sysfs.c
dm-table.c
dm: retain table limits when swapping to new table with no devices
2012-09-26 23:45:45 +01:00
dm-target.c
dm-thin-metadata.c
dm thin metadata: introduce dm_pool_abort_metadata
2012-07-27 15:08:15 +01:00
dm-thin-metadata.h
dm thin metadata: introduce dm_pool_abort_metadata
2012-07-27 15:08:15 +01:00
dm-thin.c
dm thin: move bio_prison code to separate module
2012-10-12 21:02:13 +01:00
dm-uevent.c
dm-uevent.h
dm-verity.c
dm: use ACCESS_ONCE for sysfs values
2012-10-12 16:59:46 +01:00
dm-zero.c
dm.c
dm: store dm_target_io in bio front_pad
2012-10-12 21:02:15 +01:00
dm.h
dm: retain table limits when swapping to new table with no devices
2012-09-26 23:45:45 +01:00
faulty.c
Kconfig
dm thin: move bio_prison code to separate module
2012-10-12 21:02:13 +01:00
linear.c
md: linear supports TRIM
2012-10-11 13:08:44 +11:00
linear.h
Makefile
dm thin: move bio_prison code to separate module
2012-10-12 21:02:13 +01:00
md.c
wait: add wait_event_lock_irq() interface
2012-11-30 11:47:57 +01:00
md.h
wait: add wait_event_lock_irq() interface
2012-11-30 11:47:57 +01:00
multipath.c
MD: change the parameter of md thread
2012-10-11 13:34:00 +11:00
multipath.h
raid0.c
md: raid 0 supports TRIM
2012-10-11 13:25:44 +11:00
raid0.h
raid1.c
wait: add wait_event_lock_irq() interface
2012-11-30 11:47:57 +01:00
raid1.h
md/raid1: prevent merging too large request
2012-07-31 10:03:53 +10:00
raid5.c
wait: add wait_event_lock_irq() interface
2012-11-30 11:47:57 +01:00
raid5.h
MD: raid5 trim support
2012-10-11 13:49:05 +11:00
raid10.c
wait: add wait_event_lock_irq() interface
2012-11-30 11:47:57 +01:00
raid10.h
md/raid10: fix problem with on-stack allocation of r10bio structure.
2012-08-18 09:51:42 +10:00