diff options
author | Josef Bacik <jbacik@redhat.com> | 2008-04-29 22:02:02 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-04-29 22:02:02 -0400 |
commit | 216553c4b7f3e3e2beb4981cddca9b2027523928 (patch) | |
tree | aefd413c05b078c6e8cf702956c79548943b5023 /fs/ext4 | |
parent | 2887df139c40512cdc147d1a84d95d4f3d261bd1 (diff) |
ext4: fix wrong gfp type under transaction
This fixes the allocations with GFP_KERNEL while under a transaction problems
in ext4. This patch is the same as its ext3 counterpart, just switches these
to GFP_NOFS.
Signed-off-by: Josef Bacik <jbacik@redhat.com>
Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/acl.c | 8 | ||||
-rw-r--r-- | fs/ext4/extents.c | 2 | ||||
-rw-r--r-- | fs/ext4/resize.c | 4 | ||||
-rw-r--r-- | fs/ext4/xattr.c | 4 |
4 files changed, 9 insertions, 9 deletions
diff --git a/fs/ext4/acl.c b/fs/ext4/acl.c index a8bae8cd1d5d..cc92624a46a2 100644 --- a/fs/ext4/acl.c +++ b/fs/ext4/acl.c | |||
@@ -37,7 +37,7 @@ ext4_acl_from_disk(const void *value, size_t size) | |||
37 | return ERR_PTR(-EINVAL); | 37 | return ERR_PTR(-EINVAL); |
38 | if (count == 0) | 38 | if (count == 0) |
39 | return NULL; | 39 | return NULL; |
40 | acl = posix_acl_alloc(count, GFP_KERNEL); | 40 | acl = posix_acl_alloc(count, GFP_NOFS); |
41 | if (!acl) | 41 | if (!acl) |
42 | return ERR_PTR(-ENOMEM); | 42 | return ERR_PTR(-ENOMEM); |
43 | for (n=0; n < count; n++) { | 43 | for (n=0; n < count; n++) { |
@@ -91,7 +91,7 @@ ext4_acl_to_disk(const struct posix_acl *acl, size_t *size) | |||
91 | 91 | ||
92 | *size = ext4_acl_size(acl->a_count); | 92 | *size = ext4_acl_size(acl->a_count); |
93 | ext_acl = kmalloc(sizeof(ext4_acl_header) + acl->a_count * | 93 | ext_acl = kmalloc(sizeof(ext4_acl_header) + acl->a_count * |
94 | sizeof(ext4_acl_entry), GFP_KERNEL); | 94 | sizeof(ext4_acl_entry), GFP_NOFS); |
95 | if (!ext_acl) | 95 | if (!ext_acl) |
96 | return ERR_PTR(-ENOMEM); | 96 | return ERR_PTR(-ENOMEM); |
97 | ext_acl->a_version = cpu_to_le32(EXT4_ACL_VERSION); | 97 | ext_acl->a_version = cpu_to_le32(EXT4_ACL_VERSION); |
@@ -187,7 +187,7 @@ ext4_get_acl(struct inode *inode, int type) | |||
187 | } | 187 | } |
188 | retval = ext4_xattr_get(inode, name_index, "", NULL, 0); | 188 | retval = ext4_xattr_get(inode, name_index, "", NULL, 0); |
189 | if (retval > 0) { | 189 | if (retval > 0) { |
190 | value = kmalloc(retval, GFP_KERNEL); | 190 | value = kmalloc(retval, GFP_NOFS); |
191 | if (!value) | 191 | if (!value) |
192 | return ERR_PTR(-ENOMEM); | 192 | return ERR_PTR(-ENOMEM); |
193 | retval = ext4_xattr_get(inode, name_index, "", value, retval); | 193 | retval = ext4_xattr_get(inode, name_index, "", value, retval); |
@@ -335,7 +335,7 @@ ext4_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) | |||
335 | if (error) | 335 | if (error) |
336 | goto cleanup; | 336 | goto cleanup; |
337 | } | 337 | } |
338 | clone = posix_acl_clone(acl, GFP_KERNEL); | 338 | clone = posix_acl_clone(acl, GFP_NOFS); |
339 | error = -ENOMEM; | 339 | error = -ENOMEM; |
340 | if (!clone) | 340 | if (!clone) |
341 | goto cleanup; | 341 | goto cleanup; |
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 1c8aab4dad23..4e6afc812fda 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -1977,7 +1977,7 @@ static int ext4_ext_remove_space(struct inode *inode, ext4_lblk_t start) | |||
1977 | * We start scanning from right side, freeing all the blocks | 1977 | * We start scanning from right side, freeing all the blocks |
1978 | * after i_size and walking into the tree depth-wise. | 1978 | * after i_size and walking into the tree depth-wise. |
1979 | */ | 1979 | */ |
1980 | path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), GFP_KERNEL); | 1980 | path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), GFP_NOFS); |
1981 | if (path == NULL) { | 1981 | if (path == NULL) { |
1982 | ext4_journal_stop(handle); | 1982 | ext4_journal_stop(handle); |
1983 | return -ENOMEM; | 1983 | return -ENOMEM; |
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 3e0f5d06f3ee..0ca63dcbdf88 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c | |||
@@ -469,7 +469,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, | |||
469 | goto exit_dindj; | 469 | goto exit_dindj; |
470 | 470 | ||
471 | n_group_desc = kmalloc((gdb_num + 1) * sizeof(struct buffer_head *), | 471 | n_group_desc = kmalloc((gdb_num + 1) * sizeof(struct buffer_head *), |
472 | GFP_KERNEL); | 472 | GFP_NOFS); |
473 | if (!n_group_desc) { | 473 | if (!n_group_desc) { |
474 | err = -ENOMEM; | 474 | err = -ENOMEM; |
475 | ext4_warning(sb, __func__, | 475 | ext4_warning(sb, __func__, |
@@ -552,7 +552,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode, | |||
552 | int res, i; | 552 | int res, i; |
553 | int err; | 553 | int err; |
554 | 554 | ||
555 | primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_KERNEL); | 555 | primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_NOFS); |
556 | if (!primary) | 556 | if (!primary) |
557 | return -ENOMEM; | 557 | return -ENOMEM; |
558 | 558 | ||
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index f56598df6880..df4810d5a387 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c | |||
@@ -739,7 +739,7 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode, | |||
739 | ce = NULL; | 739 | ce = NULL; |
740 | } | 740 | } |
741 | ea_bdebug(bs->bh, "cloning"); | 741 | ea_bdebug(bs->bh, "cloning"); |
742 | s->base = kmalloc(bs->bh->b_size, GFP_KERNEL); | 742 | s->base = kmalloc(bs->bh->b_size, GFP_NOFS); |
743 | error = -ENOMEM; | 743 | error = -ENOMEM; |
744 | if (s->base == NULL) | 744 | if (s->base == NULL) |
745 | goto cleanup; | 745 | goto cleanup; |
@@ -751,7 +751,7 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode, | |||
751 | } | 751 | } |
752 | } else { | 752 | } else { |
753 | /* Allocate a buffer where we construct the new block. */ | 753 | /* Allocate a buffer where we construct the new block. */ |
754 | s->base = kzalloc(sb->s_blocksize, GFP_KERNEL); | 754 | s->base = kzalloc(sb->s_blocksize, GFP_NOFS); |
755 | /* assert(header == s->base) */ | 755 | /* assert(header == s->base) */ |
756 | error = -ENOMEM; | 756 | error = -ENOMEM; |
757 | if (s->base == NULL) | 757 | if (s->base == NULL) |