dect
/
linux-2.6
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/drivers/md
NeilBrown f0b4f7e2f2 md: Fix - again - partition detection when array becomes active
Revert
    b821eaa572
and
    f3b99be19d

When I wrote the first of these I had a wrong idea about the
lifetime of 'struct block_device'.  It can disappear at any time that
the block device is not open if it falls out of the inode cache.

So relying on the 'size' recorded with it to detect when the
device size has changed and so we need to revalidate, is wrong.

Rather, we really do need the 'changed' attribute stored directly in
the mddev and set/tested as appropriate.

Without this patch, a sequence of:
   mknod / open / close / unlink

(which can cause a block_device to be created and then destroyed)
will result in a rescan of the partition table and consequence removal
and addition of partitions.
Several of these in a row can get udev racing to create and unlink and
other code can get confused.

With the patch, the rescan is only performed when needed and so there
are no races.

This is suitable for any stable kernel from 2.6.35.

Reported-by: "Wojcik, Krzysztof" <krzysztof.wojcik@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Cc: stable@kernel.org
2011-02-24 17:26:41 +11:00
..
Kconfig dm: raid456 basic support 2011-01-13 20:00:02 +00:00
Makefile dm: raid456 basic support 2011-01-13 20:00:02 +00:00
bitmap.c md: Don't let implementation detail of curr_resync leak out through sysfs. 2011-01-14 09:14:34 +11:00
bitmap.h
dm-bio-record.h
dm-crypt.c
dm-delay.c
dm-exception-store.c
dm-exception-store.h
dm-io.c
dm-ioctl.c
dm-kcopyd.c
dm-linear.c
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log.c dm log: use PTR_ERR value instead of ENOMEM 2011-01-13 20:00:00 +00:00
dm-mpath.c dm mpath: delay activate_path retry on SCSI_DH_RETRY 2011-01-13 20:00:01 +00:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid.c dm: raid456 basic support 2011-01-13 20:00:02 +00:00
dm-raid1.c
dm-region-hash.c
dm-round-robin.c
dm-service-time.c
dm-snap-persistent.c
dm-snap-transient.c
dm-snap.c dm snapshot: avoid storing private suspended state 2011-01-13 19:59:59 +00:00
dm-stripe.c
dm-sysfs.c
dm-table.c block: restore multiple bd_link_disk_holder() support 2011-01-14 18:44:22 +01:00
dm-target.c
dm-uevent.c
dm-uevent.h
dm-zero.c
dm.c dm: remove superfluous irq disablement in dm_request_fn 2011-01-13 20:00:00 +00:00
dm.h
faulty.c
linear.c md: avoid spinlock problem in blk_throtl_exit 2011-02-21 18:25:57 +11:00
linear.h
md.c md: Fix - again - partition detection when array becomes active 2011-02-24 17:26:41 +11:00
md.h md: Fix - again - partition detection when array becomes active 2011-02-24 17:26:41 +11:00
multipath.c md: avoid spinlock problem in blk_throtl_exit 2011-02-21 18:25:57 +11:00
multipath.h
raid0.c md: avoid spinlock problem in blk_throtl_exit 2011-02-21 18:25:57 +11:00
raid0.h
raid1.c md: avoid spinlock problem in blk_throtl_exit 2011-02-21 18:25:57 +11:00
raid1.h
raid5.c md: avoid spinlock problem in blk_throtl_exit 2011-02-21 18:25:57 +11:00
raid5.h
raid10.c md: avoid spinlock problem in blk_throtl_exit 2011-02-21 18:25:57 +11:00
raid10.h