diff options
-rw-r--r-- | drivers/md/bitmap.c | 31 |
1 files changed, 3 insertions, 28 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index e12b515bd471..534e0077d21a 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c | |||
@@ -36,31 +36,6 @@ static inline char *bmname(struct bitmap *bitmap) | |||
36 | } | 36 | } |
37 | 37 | ||
38 | /* | 38 | /* |
39 | * just a placeholder - calls kmalloc for bitmap pages | ||
40 | */ | ||
41 | static unsigned char *bitmap_alloc_page(struct bitmap *bitmap) | ||
42 | { | ||
43 | unsigned char *page; | ||
44 | |||
45 | page = kzalloc(PAGE_SIZE, GFP_NOIO); | ||
46 | if (!page) | ||
47 | printk("%s: bitmap_alloc_page FAILED\n", bmname(bitmap)); | ||
48 | else | ||
49 | pr_debug("%s: bitmap_alloc_page: allocated page at %p\n", | ||
50 | bmname(bitmap), page); | ||
51 | return page; | ||
52 | } | ||
53 | |||
54 | /* | ||
55 | * for now just a placeholder -- just calls kfree for bitmap pages | ||
56 | */ | ||
57 | static void bitmap_free_page(struct bitmap *bitmap, unsigned char *page) | ||
58 | { | ||
59 | pr_debug("%s: bitmap_free_page: free page %p\n", bmname(bitmap), page); | ||
60 | kfree(page); | ||
61 | } | ||
62 | |||
63 | /* | ||
64 | * check a page and, if necessary, allocate it (or hijack it if the alloc fails) | 39 | * check a page and, if necessary, allocate it (or hijack it if the alloc fails) |
65 | * | 40 | * |
66 | * 1) check to see if this page is allocated, if it's not then try to alloc | 41 | * 1) check to see if this page is allocated, if it's not then try to alloc |
@@ -97,7 +72,7 @@ __acquires(bitmap->lock) | |||
97 | /* this page has not been allocated yet */ | 72 | /* this page has not been allocated yet */ |
98 | 73 | ||
99 | spin_unlock_irq(&bitmap->lock); | 74 | spin_unlock_irq(&bitmap->lock); |
100 | mappage = bitmap_alloc_page(bitmap); | 75 | mappage = kzalloc(PAGE_SIZE, GFP_NOIO); |
101 | spin_lock_irq(&bitmap->lock); | 76 | spin_lock_irq(&bitmap->lock); |
102 | 77 | ||
103 | if (mappage == NULL) { | 78 | if (mappage == NULL) { |
@@ -110,7 +85,7 @@ __acquires(bitmap->lock) | |||
110 | } else if (bitmap->bp[page].map || | 85 | } else if (bitmap->bp[page].map || |
111 | bitmap->bp[page].hijacked) { | 86 | bitmap->bp[page].hijacked) { |
112 | /* somebody beat us to getting the page */ | 87 | /* somebody beat us to getting the page */ |
113 | bitmap_free_page(bitmap, mappage); | 88 | kfree(mappage); |
114 | return 0; | 89 | return 0; |
115 | } else { | 90 | } else { |
116 | 91 | ||
@@ -142,7 +117,7 @@ static void bitmap_checkfree(struct bitmap *bitmap, unsigned long page) | |||
142 | ptr = bitmap->bp[page].map; | 117 | ptr = bitmap->bp[page].map; |
143 | bitmap->bp[page].map = NULL; | 118 | bitmap->bp[page].map = NULL; |
144 | bitmap->missing_pages++; | 119 | bitmap->missing_pages++; |
145 | bitmap_free_page(bitmap, ptr); | 120 | kfree(ptr); |
146 | } | 121 | } |
147 | } | 122 | } |
148 | 123 | ||