Revision ca64cae96037de16e4af92678814f5d4bf0c1c65 authored by NeilBrown on 21 November 2012, 05:33:40 UTC, committed by NeilBrown on 21 November 2012, 22:14:13 UTC
commit 9e44476851e91c86c98eb92b9bc27fb801f89072
    MD: raid5 avoid unnecessary zero page for trim

change raid5 to clear R5_Discard when the complete request is
handled rather than when submitting the per-device discard request.
However it did not clear R5_Discard for the parity device.

This means that if the stripe_head was reused before it expired from
the cache, the setting would be wrong and a hang would result.

Also if the R5_Uptodate bit happens to be set, R5_Discard again
won't be cleared.  But R5_Uptodate really should be clear at this point.

So make sure R5_Discard is cleared in all cases, and clear
R5_Uptodate when a 'discard' completes.

Signed-off-by: NeilBrown <neilb@suse.de>
1 parent ef5b7c6
History
File Mode Size
ccids
Kconfig -rw-r--r-- 1.7 KB
Makefile -rw-r--r-- 842 bytes
ackvec.c -rw-r--r-- 12.4 KB
ackvec.h -rw-r--r-- 4.7 KB
ccid.c -rw-r--r-- 5.2 KB
ccid.h -rw-r--r-- 8.8 KB
dccp.h -rw-r--r-- 16.7 KB
diag.c -rw-r--r-- 2.3 KB
feat.c -rw-r--r-- 47.2 KB
feat.h -rw-r--r-- 4.6 KB
input.c -rw-r--r-- 21.6 KB
ipv4.c -rw-r--r-- 28.5 KB
ipv6.c -rw-r--r-- 30.5 KB
ipv6.h -rw-r--r-- 822 bytes
minisocks.c -rw-r--r-- 7.9 KB
options.c -rw-r--r-- 17.2 KB
output.c -rw-r--r-- 20.2 KB
probe.c -rw-r--r-- 4.9 KB
proto.c -rw-r--r-- 30.0 KB
qpolicy.c -rw-r--r-- 3.4 KB
sysctl.c -rw-r--r-- 2.8 KB
timer.c -rw-r--r-- 7.5 KB

back to top