projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dm snapshot: use GFP_KERNEL when initializing exceptions
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
drivers
/
md
/
dm-snap.c
diff --git
a/drivers/md/dm-snap.c
b/drivers/md/dm-snap.c
index
944690b
..
7177185
100644
(file)
--- a/
drivers/md/dm-snap.c
+++ b/
drivers/md/dm-snap.c
@@
-610,12
+610,12
@@
static struct dm_exception *dm_lookup_exception(struct dm_exception_table *et,
return NULL;
}
return NULL;
}
-static struct dm_exception *alloc_completed_exception(
void
)
+static struct dm_exception *alloc_completed_exception(
gfp_t gfp
)
{
struct dm_exception *e;
{
struct dm_exception *e;
- e = kmem_cache_alloc(exception_cache,
GFP_NOIO
);
- if (!e)
+ e = kmem_cache_alloc(exception_cache,
gfp
);
+ if (!e
&& gfp == GFP_NOIO
)
e = kmem_cache_alloc(exception_cache, GFP_ATOMIC);
return e;
e = kmem_cache_alloc(exception_cache, GFP_ATOMIC);
return e;
@@
-697,7
+697,7
@@
static int dm_add_exception(void *context, chunk_t old, chunk_t new)
struct dm_snapshot *s = context;
struct dm_exception *e;
struct dm_snapshot *s = context;
struct dm_exception *e;
- e = alloc_completed_exception();
+ e = alloc_completed_exception(
GFP_KERNEL
);
if (!e)
return -ENOMEM;
if (!e)
return -ENOMEM;
@@
-1405,7
+1405,7
@@
static void pending_complete(struct dm_snap_pending_exception *pe, int success)
goto out;
}
goto out;
}
- e = alloc_completed_exception();
+ e = alloc_completed_exception(
GFP_NOIO
);
if (!e) {
down_write(&s->lock);
__invalidate_snapshot(s, -ENOMEM);
if (!e) {
down_write(&s->lock);
__invalidate_snapshot(s, -ENOMEM);