diff options
| author | NeilBrown <neilb@suse.de> | 2009-09-23 04:06:44 -0400 |
|---|---|---|
| committer | NeilBrown <neilb@suse.de> | 2009-09-23 04:06:44 -0400 |
| commit | ee305acef5c7841dc25cc32e84bb94f744e1e9b9 (patch) | |
| tree | f952a19fce593391e5cbd4a3bb4087d214a8ddc0 | |
| parent | a9f326ebf22a0de776815240fb76dabe139397ea (diff) | |
md: remove sparse warnings about lock context.
There was a real error here on a failure path where we
incorrectly call rcu_read_unlock.
Signed-off-by: NeilBrown <neilb@suse.de>
| -rw-r--r-- | drivers/md/bitmap.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index 3319c2fec28e..6986b0059d23 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c | |||
| @@ -108,6 +108,8 @@ static void bitmap_free_page(struct bitmap *bitmap, unsigned char *page) | |||
| 108 | * allocated while we're using it | 108 | * allocated while we're using it |
| 109 | */ | 109 | */ |
| 110 | static int bitmap_checkpage(struct bitmap *bitmap, unsigned long page, int create) | 110 | static int bitmap_checkpage(struct bitmap *bitmap, unsigned long page, int create) |
| 111 | __releases(bitmap->lock) | ||
| 112 | __acquires(bitmap->lock) | ||
| 111 | { | 113 | { |
| 112 | unsigned char *mappage; | 114 | unsigned char *mappage; |
| 113 | 115 | ||
| @@ -325,7 +327,6 @@ static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait) | |||
| 325 | return 0; | 327 | return 0; |
| 326 | 328 | ||
| 327 | bad_alignment: | 329 | bad_alignment: |
| 328 | rcu_read_unlock(); | ||
| 329 | return -EINVAL; | 330 | return -EINVAL; |
| 330 | } | 331 | } |
| 331 | 332 | ||
| @@ -1207,6 +1208,8 @@ void bitmap_daemon_work(struct bitmap *bitmap) | |||
| 1207 | static bitmap_counter_t *bitmap_get_counter(struct bitmap *bitmap, | 1208 | static bitmap_counter_t *bitmap_get_counter(struct bitmap *bitmap, |
| 1208 | sector_t offset, int *blocks, | 1209 | sector_t offset, int *blocks, |
| 1209 | int create) | 1210 | int create) |
| 1211 | __releases(bitmap->lock) | ||
| 1212 | __acquires(bitmap->lock) | ||
| 1210 | { | 1213 | { |
| 1211 | /* If 'create', we might release the lock and reclaim it. | 1214 | /* If 'create', we might release the lock and reclaim it. |
| 1212 | * The lock must have been taken with interrupts enabled. | 1215 | * The lock must have been taken with interrupts enabled. |
