diff options
author | Tony Luck <tony.luck@intel.com> | 2005-07-15 16:59:00 -0700 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-07-15 16:59:00 -0700 |
commit | 08848e446bcd2130c26945be966446389d25bcc2 (patch) | |
tree | e31e6ec7a1d9e8f6bbf8cdee2692eb42f4869f47 /drivers/md/bitmap.c | |
parent | 46906c4415f88cebfad530917bada0835d651824 (diff) | |
parent | 38d84c3bd6dd22bdb1f797c87006931133d71aea (diff) |
Auto merge with /home/aegl/GIT/linus
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r-- | drivers/md/bitmap.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index 95980ad6b27b..0c2ed99a3832 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c @@ -1345,7 +1345,8 @@ void bitmap_endwrite(struct bitmap *bitmap, sector_t offset, unsigned long secto } } -int bitmap_start_sync(struct bitmap *bitmap, sector_t offset, int *blocks) +int bitmap_start_sync(struct bitmap *bitmap, sector_t offset, int *blocks, + int degraded) { bitmap_counter_t *bmc; int rv; @@ -1362,8 +1363,10 @@ int bitmap_start_sync(struct bitmap *bitmap, sector_t offset, int *blocks) rv = 1; else if (NEEDED(*bmc)) { rv = 1; - *bmc |= RESYNC_MASK; - *bmc &= ~NEEDED_MASK; + if (!degraded) { /* don't set/clear bits if degraded */ + *bmc |= RESYNC_MASK; + *bmc &= ~NEEDED_MASK; + } } } spin_unlock_irq(&bitmap->lock); |