android_kernel_xiaomi_sm8350/drivers/md
Dan Williams ecc65c9b3f md: replace STRIPE_OP_CHECK with 'check_states'
From: Dan Williams <dan.j.williams@intel.com>

The STRIPE_OP_* flags record the state of stripe operations which are
performed outside the stripe lock.  Their use in indicating which
operations need to be run is straightforward; however, interpolating what
the next state of the stripe should be based on a given combination of
these flags is not straightforward, and has led to bugs.  An easier to read
implementation with minimal degrees of freedom is needed.

Towards this goal, this patch introduces explicit states to replace what was
previously interpolated from the STRIPE_OP_* flags.  For now this only converts
the handle_parity_checks5 path, removing a user of the
ops.{pending,ack,complete,count} fields of struct stripe_operations.

This conversion also found a remaining issue with the current code.  There is
a small window for a drive to fail between when we schedule a repair and when
the parity calculation for that repair completes.  When this happens we will
writeback to 'failed_num' when we really want to write back to 'pd_idx'.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Neil Brown <neilb@suse.de>
2008-06-28 08:31:57 +10:00
..
raid6test
.gitignore
bitmap.c Improve setting of "events_cleared" for write-intent bitmaps. 2008-06-28 08:31:22 +10:00
dm-bio-list.h
dm-bio-record.h
dm-crypt.c
dm-delay.c
dm-emc.c block: no need to initialize rq->cmd with blk_get_request 2008-04-29 14:48:55 +02:00
dm-exception-store.c
dm-hw-handler.c
dm-hw-handler.h
dm-io.c
dm-ioctl.c
dm-kcopyd.c
dm-linear.c
dm-log.c
dm-mpath-hp-sw.c block: no need to initialize rq->cmd with blk_get_request 2008-04-29 14:48:55 +02:00
dm-mpath-rdac.c block: no need to initialize rq->cmd with blk_get_request 2008-04-29 14:48:55 +02:00
dm-mpath.c
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-raid1.c
dm-round-robin.c
dm-snap.c
dm-snap.h
dm-stripe.c
dm-table.c dm: use unlocked variants of queue flag check/set 2008-04-29 10:21:12 -07:00
dm-target.c
dm-uevent.c
dm-uevent.h
dm-zero.c
dm.c
dm.h
faulty.c
Kconfig
linear.c linear: correct disk numbering error check 2008-06-28 08:31:19 +10:00
Makefile
md.c Support changing rdev size on running arrays. 2008-06-28 08:31:46 +10:00
mktables.c
multipath.c rationalise return value for ->hot_add_disk method. 2008-06-28 08:31:33 +10:00
raid0.c Remove blkdev warning triggered by using md 2008-05-14 19:11:15 -07:00
raid1.c rationalise return value for ->hot_add_disk method. 2008-06-28 08:31:33 +10:00
raid5.c md: replace STRIPE_OP_CHECK with 'check_states' 2008-06-28 08:31:57 +10:00
raid6.h
raid6algos.c drivers/md: use time_before, time_before_eq, etc 2008-04-28 08:58:42 -07:00
raid6altivec.uc
raid6int.uc
raid6mmx.c
raid6recov.c
raid6sse1.c
raid6sse2.c
raid6x86.h
raid10.c rationalise return value for ->hot_add_disk method. 2008-06-28 08:31:33 +10:00
unroll.pl