Revision dcd8376c369fa8fde8269e721b14f50475dd397b authored by Jens Axboe on 25 November 2015, 17:12:54 UTC, committed by Jens Axboe on 25 November 2015, 17:12:54 UTC
This reverts commit 1b2ff19e6a957b1ef0f365ad331b608af80e932e. Jan writes: -- Thanks for report! After some investigation I found out we allocate elevator specific data in __get_request() only for non-flush requests. And this is actually required since the flush machinery uses the space in struct request for something else. Doh. So my patch is just wrong and not easy to fix since at the time __get_request() is called we are not sure whether the flush machinery will be used in the end. Jens, please revert 1b2ff19e6a957b1ef0f365ad331b608af80e932e. Thanks! I'm somewhat surprised that you can reliably hit the race where flushing gets disabled for the device just while the request is in flight. But I guess during boot it makes some sense. -- So let's just revert it, we can fix the queue run manually after the fact. This race is rare enough that it didn't trigger in testing, it requires the specific disable-while-in-flight scenario to trigger.
1 parent 55ce0da
File | Mode | Size |
---|---|---|
842 | ||
fonts | ||
lz4 | ||
lzo | ||
mpi | ||
raid6 | ||
reed_solomon | ||
xz | ||
zlib_deflate | ||
zlib_inflate | ||
.gitignore | -rw-r--r-- | 70 bytes |
Kconfig | -rw-r--r-- | 11.7 KB |
Kconfig.debug | -rw-r--r-- | 62.5 KB |
Kconfig.kasan | -rw-r--r-- | 1.6 KB |
Kconfig.kgdb | -rw-r--r-- | 4.1 KB |
Kconfig.kmemcheck | -rw-r--r-- | 2.9 KB |
Makefile | -rw-r--r-- | 6.5 KB |
argv_split.c | -rw-r--r-- | 2.1 KB |
asn1_decoder.c | -rw-r--r-- | 13.1 KB |
assoc_array.c | -rw-r--r-- | 52.6 KB |
atomic64.c | -rw-r--r-- | 4.1 KB |
atomic64_test.c | -rw-r--r-- | 4.0 KB |
audit.c | -rw-r--r-- | 1.7 KB |
bcd.c | -rw-r--r-- | 261 bytes |
bch.c | -rw-r--r-- | 35.6 KB |
bitmap.c | -rw-r--r-- | 32.9 KB |
bitrev.c | -rw-r--r-- | 1.9 KB |
bsearch.c | -rw-r--r-- | 1.6 KB |
btree.c | -rw-r--r-- | 19.3 KB |
bug.c | -rw-r--r-- | 5.0 KB |
build_OID_registry | -rwxr-xr-x | 4.7 KB |
bust_spinlocks.c | -rw-r--r-- | 660 bytes |
check_signature.c | -rw-r--r-- | 599 bytes |
checksum.c | -rw-r--r-- | 5.0 KB |
clz_ctz.c | -rw-r--r-- | 1.3 KB |
clz_tab.c | -rw-r--r-- | 855 bytes |
cmdline.c | -rw-r--r-- | 4.1 KB |
compat_audit.c | -rw-r--r-- | 796 bytes |
cordic.c | -rw-r--r-- | 2.5 KB |
cpu-notifier-error-inject.c | -rw-r--r-- | 1.2 KB |
cpu_rmap.c | -rw-r--r-- | 7.8 KB |
cpumask.c | -rw-r--r-- | 4.6 KB |
crc-ccitt.c | -rw-r--r-- | 3.0 KB |
crc-itu-t.c | -rw-r--r-- | 2.8 KB |
crc-t10dif.c | -rw-r--r-- | 1.6 KB |
crc16.c | -rw-r--r-- | 2.8 KB |
crc32.c | -rw-r--r-- | 45.4 KB |
crc32defs.h | -rw-r--r-- | 2.0 KB |
crc7.c | -rw-r--r-- | 2.6 KB |
crc8.c | -rw-r--r-- | 2.4 KB |
ctype.c | -rw-r--r-- | 1.4 KB |
debug_info.c | -rw-r--r-- | 741 bytes |
debug_locks.c | -rw-r--r-- | 1.2 KB |
debugobjects.c | -rw-r--r-- | 26.1 KB |
dec_and_lock.c | -rw-r--r-- | 784 bytes |
decompress.c | -rw-r--r-- | 1.7 KB |
decompress_bunzip2.c | -rw-r--r-- | 23.5 KB |
decompress_inflate.c | -rw-r--r-- | 4.4 KB |
decompress_unlz4.c | -rw-r--r-- | 4.2 KB |
decompress_unlzma.c | -rw-r--r-- | 15.8 KB |
decompress_unlzo.c | -rw-r--r-- | 7.1 KB |
decompress_unxz.c | -rw-r--r-- | 10.9 KB |
devres.c | -rw-r--r-- | 9.8 KB |
digsig.c | -rw-r--r-- | 5.5 KB |
div64.c | -rw-r--r-- | 4.0 KB |
dma-debug.c | -rw-r--r-- | 42.2 KB |
dump_stack.c | -rw-r--r-- | 1.1 KB |
dynamic_debug.c | -rw-r--r-- | 25.2 KB |
dynamic_queue_limits.c | -rw-r--r-- | 4.3 KB |
earlycpio.c | -rw-r--r-- | 3.9 KB |
extable.c | -rw-r--r-- | 2.4 KB |
fault-inject.c | -rw-r--r-- | 6.0 KB |
fdt.c | -rw-r--r-- | 69 bytes |
fdt_empty_tree.c | -rw-r--r-- | 80 bytes |
fdt_ro.c | -rw-r--r-- | 72 bytes |
fdt_rw.c | -rw-r--r-- | 72 bytes |
fdt_strerror.c | -rw-r--r-- | 78 bytes |
fdt_sw.c | -rw-r--r-- | 72 bytes |
fdt_wip.c | -rw-r--r-- | 73 bytes |
find_bit.c | -rw-r--r-- | 4.5 KB |
flex_array.c | -rw-r--r-- | 11.0 KB |
flex_proportions.c | -rw-r--r-- | 6.9 KB |
gcd.c | -rw-r--r-- | 313 bytes |
gen_crc32table.c | -rw-r--r-- | 3.2 KB |
genalloc.c | -rw-r--r-- | 19.0 KB |
glob.c | -rw-r--r-- | 7.7 KB |
halfmd4.c | -rw-r--r-- | 2.0 KB |
hexdump.c | -rw-r--r-- | 8.3 KB |
hweight.c | -rw-r--r-- | 1.9 KB |
idr.c | -rw-r--r-- | 28.0 KB |
inflate.c | -rw-r--r-- | 38.6 KB |
int_sqrt.c | -rw-r--r-- | 652 bytes |
interval_tree.c | -rw-r--r-- | 499 bytes |
interval_tree_test.c | -rw-r--r-- | 2.3 KB |
iomap.c | -rw-r--r-- | 6.5 KB |
iomap_copy.c | -rw-r--r-- | 2.1 KB |
iommu-common.c | -rw-r--r-- | 7.0 KB |
iommu-helper.c | -rw-r--r-- | 1.0 KB |
ioremap.c | -rw-r--r-- | 3.4 KB |
iov_iter.c | -rw-r--r-- | 19.8 KB |
irq_regs.c | -rw-r--r-- | 604 bytes |
is_single_threaded.c | -rw-r--r-- | 1.3 KB |
jedec_ddr_data.c | -rw-r--r-- | 3.0 KB |
kasprintf.c | -rw-r--r-- | 1.2 KB |
kfifo.c | -rw-r--r-- | 12.7 KB |
klist.c | -rw-r--r-- | 10.3 KB |
kobject.c | -rw-r--r-- | 26.0 KB |
kobject_uevent.c | -rw-r--r-- | 11.3 KB |
kstrtox.c | -rw-r--r-- | 9.4 KB |
kstrtox.h | -rw-r--r-- | 254 bytes |
lcm.c | -rw-r--r-- | 441 bytes |
libcrc32c.c | -rw-r--r-- | 2.0 KB |
list_debug.c | -rw-r--r-- | 2.6 KB |
list_sort.c | -rw-r--r-- | 6.8 KB |
llist.c | -rw-r--r-- | 3.1 KB |
locking-selftest-hardirq.h | -rw-r--r-- | 207 bytes |
locking-selftest-mutex.h | -rw-r--r-- | 120 bytes |
locking-selftest-rlock-hardirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-rlock-softirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-rlock.h | -rw-r--r-- | 158 bytes |
locking-selftest-rsem.h | -rw-r--r-- | 163 bytes |
locking-selftest-softirq.h | -rw-r--r-- | 207 bytes |
locking-selftest-spin-hardirq.h | -rw-r--r-- | 73 bytes |
locking-selftest-spin-softirq.h | -rw-r--r-- | 73 bytes |
locking-selftest-spin.h | -rw-r--r-- | 118 bytes |
locking-selftest-wlock-hardirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-wlock-softirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-wlock.h | -rw-r--r-- | 158 bytes |
locking-selftest-wsem.h | -rw-r--r-- | 163 bytes |
locking-selftest.c | -rw-r--r-- | 40.1 KB |
lockref.c | -rw-r--r-- | 3.9 KB |
lru_cache.c | -rw-r--r-- | 19.4 KB |
md5.c | -rw-r--r-- | 3.7 KB |
memory-notifier-error-inject.c | -rw-r--r-- | 1.1 KB |
memweight.c | -rw-r--r-- | 999 bytes |
net_utils.c | -rw-r--r-- | 604 bytes |
nlattr.c | -rw-r--r-- | 12.5 KB |
nmi_backtrace.c | -rw-r--r-- | 4.5 KB |
notifier-error-inject.c | -rw-r--r-- | 2.7 KB |
notifier-error-inject.h | -rw-r--r-- | 614 bytes |
of-reconfig-notifier-error-inject.c | -rw-r--r-- | 1.3 KB |
oid_registry.c | -rw-r--r-- | 3.8 KB |
once.c | -rw-r--r-- | 1.3 KB |
parser.c | -rw-r--r-- | 7.1 KB |
pci_iomap.c | -rw-r--r-- | 4.2 KB |
percpu-refcount.c | -rw-r--r-- | 11.7 KB |
percpu_counter.c | -rw-r--r-- | 5.5 KB |
percpu_ida.c | -rw-r--r-- | 9.5 KB |
percpu_test.c | -rw-r--r-- | 3.2 KB |
plist.c | -rw-r--r-- | 5.9 KB |
pm-notifier-error-inject.c | -rw-r--r-- | 1.1 KB |
proportions.c | -rw-r--r-- | 9.4 KB |
radix-tree.c | -rw-r--r-- | 39.4 KB |
random32.c | -rw-r--r-- | 12.7 KB |
ratelimit.c | -rw-r--r-- | 1.5 KB |
rational.c | -rw-r--r-- | 1.5 KB |
rbtree.c | -rw-r--r-- | 16.2 KB |
rbtree_test.c | -rw-r--r-- | 5.5 KB |
reciprocal_div.c | -rw-r--r-- | 492 bytes |
rhashtable.c | -rw-r--r-- | 20.4 KB |
scatterlist.c | -rw-r--r-- | 18.8 KB |
seq_buf.c | -rw-r--r-- | 7.8 KB |
sg_split.c | -rw-r--r-- | 5.1 KB |
sha1.c | -rw-r--r-- | 6.1 KB |
show_mem.c | -rw-r--r-- | 1.2 KB |
smp_processor_id.c | -rw-r--r-- | 1.3 KB |
sort.c | -rw-r--r-- | 2.9 KB |
stmp_device.c | -rw-r--r-- | 2.1 KB |
string.c | -rw-r--r-- | 19.9 KB |
string_helpers.c | -rw-r--r-- | 10.5 KB |
strncpy_from_user.c | -rw-r--r-- | 2.9 KB |
strnlen_user.c | -rw-r--r-- | 4.1 KB |
swiotlb.c | -rw-r--r-- | 27.3 KB |
syscall.c | -rw-r--r-- | 2.4 KB |
test-hexdump.c | -rw-r--r-- | 4.1 KB |
test-kstrtox.c | -rw-r--r-- | 17.3 KB |
test-string_helpers.c | -rw-r--r-- | 9.3 KB |
test_bpf.c | -rw-r--r-- | 125.7 KB |
test_firmware.c | -rw-r--r-- | 2.8 KB |
test_kasan.c | -rw-r--r-- | 6.2 KB |
test_module.c | -rw-r--r-- | 753 bytes |
test_printf.c | -rw-r--r-- | 8.0 KB |
test_rhashtable.c | -rw-r--r-- | 9.7 KB |
test_static_key_base.c | -rw-r--r-- | 2.0 KB |
test_static_keys.c | -rw-r--r-- | 5.4 KB |
test_user_copy.c | -rw-r--r-- | 3.1 KB |
textsearch.c | -rw-r--r-- | 9.4 KB |
timerqueue.c | -rw-r--r-- | 3.2 KB |
ts_bm.c | -rw-r--r-- | 5.3 KB |
ts_fsm.c | -rw-r--r-- | 10.6 KB |
ts_kmp.c | -rw-r--r-- | 4.3 KB |
ucs2_string.c | -rw-r--r-- | 1.2 KB |
usercopy.c | -rw-r--r-- | 197 bytes |
uuid.c | -rw-r--r-- | 1.3 KB |
vsprintf.c | -rw-r--r-- | 62.2 KB |
Computing file changes ...