diff options
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index adf4d7e1d5e1..561a65f82e26 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -8111,6 +8111,7 @@ static int md_set_badblocks(struct badblocks *bb, sector_t s, int sectors, | |||
8111 | u64 *p; | 8111 | u64 *p; |
8112 | int lo, hi; | 8112 | int lo, hi; |
8113 | int rv = 1; | 8113 | int rv = 1; |
8114 | unsigned long flags; | ||
8114 | 8115 | ||
8115 | if (bb->shift < 0) | 8116 | if (bb->shift < 0) |
8116 | /* badblocks are disabled */ | 8117 | /* badblocks are disabled */ |
@@ -8125,7 +8126,7 @@ static int md_set_badblocks(struct badblocks *bb, sector_t s, int sectors, | |||
8125 | sectors = next - s; | 8126 | sectors = next - s; |
8126 | } | 8127 | } |
8127 | 8128 | ||
8128 | write_seqlock_irq(&bb->lock); | 8129 | write_seqlock_irqsave(&bb->lock, flags); |
8129 | 8130 | ||
8130 | p = bb->page; | 8131 | p = bb->page; |
8131 | lo = 0; | 8132 | lo = 0; |
@@ -8241,7 +8242,7 @@ static int md_set_badblocks(struct badblocks *bb, sector_t s, int sectors, | |||
8241 | bb->changed = 1; | 8242 | bb->changed = 1; |
8242 | if (!acknowledged) | 8243 | if (!acknowledged) |
8243 | bb->unacked_exist = 1; | 8244 | bb->unacked_exist = 1; |
8244 | write_sequnlock_irq(&bb->lock); | 8245 | write_sequnlock_irqrestore(&bb->lock, flags); |
8245 | 8246 | ||
8246 | return rv; | 8247 | return rv; |
8247 | } | 8248 | } |