diff options
-rw-r--r-- | fs/ext2/xattr.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c index 839e71e78673..79369c13cc55 100644 --- a/fs/ext2/xattr.c +++ b/fs/ext2/xattr.c | |||
@@ -532,11 +532,10 @@ bad_block: | |||
532 | 532 | ||
533 | unlock_buffer(bh); | 533 | unlock_buffer(bh); |
534 | ea_bdebug(bh, "cloning"); | 534 | ea_bdebug(bh, "cloning"); |
535 | header = kmalloc(bh->b_size, GFP_KERNEL); | 535 | header = kmemdup(HDR(bh), bh->b_size, GFP_KERNEL); |
536 | error = -ENOMEM; | 536 | error = -ENOMEM; |
537 | if (header == NULL) | 537 | if (header == NULL) |
538 | goto cleanup; | 538 | goto cleanup; |
539 | memcpy(header, HDR(bh), bh->b_size); | ||
540 | header->h_refcount = cpu_to_le32(1); | 539 | header->h_refcount = cpu_to_le32(1); |
541 | 540 | ||
542 | offset = (char *)here - bh->b_data; | 541 | offset = (char *)here - bh->b_data; |