diff options
| -rw-r--r-- | fs/ext4/xattr.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index fed5b01d7a8d..025701926f9a 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c | |||
| @@ -988,6 +988,10 @@ ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, | |||
| 988 | if (error) | 988 | if (error) |
| 989 | goto cleanup; | 989 | goto cleanup; |
| 990 | 990 | ||
| 991 | error = ext4_journal_get_write_access(handle, is.iloc.bh); | ||
| 992 | if (error) | ||
| 993 | goto cleanup; | ||
| 994 | |||
| 991 | if (EXT4_I(inode)->i_state & EXT4_STATE_NEW) { | 995 | if (EXT4_I(inode)->i_state & EXT4_STATE_NEW) { |
| 992 | struct ext4_inode *raw_inode = ext4_raw_inode(&is.iloc); | 996 | struct ext4_inode *raw_inode = ext4_raw_inode(&is.iloc); |
| 993 | memset(raw_inode, 0, EXT4_SB(inode->i_sb)->s_inode_size); | 997 | memset(raw_inode, 0, EXT4_SB(inode->i_sb)->s_inode_size); |
| @@ -1013,9 +1017,6 @@ ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, | |||
| 1013 | if (flags & XATTR_CREATE) | 1017 | if (flags & XATTR_CREATE) |
| 1014 | goto cleanup; | 1018 | goto cleanup; |
| 1015 | } | 1019 | } |
| 1016 | error = ext4_journal_get_write_access(handle, is.iloc.bh); | ||
| 1017 | if (error) | ||
| 1018 | goto cleanup; | ||
| 1019 | if (!value) { | 1020 | if (!value) { |
| 1020 | if (!is.s.not_found) | 1021 | if (!is.s.not_found) |
| 1021 | error = ext4_xattr_ibody_set(handle, inode, &i, &is); | 1022 | error = ext4_xattr_ibody_set(handle, inode, &i, &is); |
