projects
/
platform
/
kernel
/
linux-3.10.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9fb1b9d
)
dm array: fix bug in growing array
author
Joe Thornber
<ejt@redhat.com>
Wed, 30 Oct 2013 11:19:59 +0000
(11:19 +0000)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Wed, 4 Dec 2013 18:56:42 +0000
(10:56 -0800)
commit
9c1d4de56066e4d6abc66ec188faafd7b303fb08
upstream.
Entries would be lost if the old tail block was partially filled.
Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/persistent-data/dm-array.c
patch
|
blob
|
history
diff --git
a/drivers/md/persistent-data/dm-array.c
b/drivers/md/persistent-data/dm-array.c
index
172147e
..
af96e24
100644
(file)
--- a/
drivers/md/persistent-data/dm-array.c
+++ b/
drivers/md/persistent-data/dm-array.c
@@
-509,15
+509,18
@@
static int grow_add_tail_block(struct resize *resize)
static int grow_needs_more_blocks(struct resize *resize)
{
int r;
+ unsigned old_nr_blocks = resize->old_nr_full_blocks;
if (resize->old_nr_entries_in_last_block > 0) {
+ old_nr_blocks++;
+
r = grow_extend_tail_block(resize, resize->max_entries);
if (r)
return r;
}
r = insert_full_ablocks(resize->info, resize->size_of_block,
-
resize->old_nr_full
_blocks,
+
old_nr
_blocks,
resize->new_nr_full_blocks,
resize->max_entries, resize->value,
&resize->root);