android_kernel_xiaomi_sm8350/drivers/md
NeilBrown 73d5c38a95 md: avoid races when stopping resync.
There has been a race in raid10 and raid1 for a long time
which has only recently started showing up due to a scheduler changed.

When a sync_read request finishes, as soon as reschedule_retry
is called, another thread can mark the resync request as having
completed, so md_do_sync can finish, ->stop can be called, and
->conf can be freed.  So using conf after reschedule_retry is not
safe.

Similarly, when finishing a sync_write, calling md_done_sync must be
the last thing we do, as it allows a chain of events which will free
conf and other data structures.

The first of these requires action in raid10.c
The second requires action in raid1.c and raid10.c

Cc: stable@kernel.org
Signed-off-by: NeilBrown <neilb@suse.de>
2009-02-25 13:18:47 +11:00
..
raid6test
.gitignore
bitmap.c md: use list_for_each_entry macro directly 2009-01-09 08:31:08 +11:00
dm-bio-list.h
dm-bio-record.h
dm-crypt.c
dm-delay.c
dm-exception-store.c
dm-exception-store.h
dm-io.c block: fix bad definition of BIO_RW_SYNC 2009-02-18 10:32:00 +01:00
dm-ioctl.c
dm-kcopyd.c block: fix bad definition of BIO_RW_SYNC 2009-02-18 10:32:00 +01:00
dm-linear.c
dm-log.c
dm-mpath.c
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-raid1.c
dm-region-hash.c
dm-round-robin.c
dm-snap-persistent.c
dm-snap-transient.c
dm-snap.c
dm-snap.h
dm-stripe.c
dm-sysfs.c
dm-table.c
dm-target.c
dm-uevent.c
dm-uevent.h
dm-zero.c
dm.c
dm.h
faulty.c md: use list_for_each_entry macro directly 2009-01-09 08:31:08 +11:00
Kconfig
linear.c md: Fix a bug in linear.c causing which_dev() to return the wrong device. 2009-02-06 15:10:52 +11:00
Makefile
md.c block: fix bad definition of BIO_RW_SYNC 2009-02-18 10:32:00 +01:00
mktables.c
multipath.c md: use list_for_each_entry macro directly 2009-01-09 08:31:08 +11:00
raid0.c md: use list_for_each_entry macro directly 2009-01-09 08:31:08 +11:00
raid1.c md: avoid races when stopping resync. 2009-02-25 13:18:47 +11:00
raid5.c md: use list_for_each_entry macro directly 2009-01-09 08:31:08 +11:00
raid6.h
raid6algos.c
raid6altivec.uc
raid6int.uc
raid6mmx.c
raid6recov.c
raid6sse1.c
raid6sse2.c
raid6x86.h
raid10.c md: avoid races when stopping resync. 2009-02-25 13:18:47 +11:00
unroll.pl