diff options
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/inline.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index b32d77bfb3a1..4b143febf21f 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c | |||
@@ -811,8 +811,11 @@ static int ext4_da_convert_inline_data_to_extent(struct address_space *mapping, | |||
811 | ret = __block_write_begin(page, 0, inline_size, | 811 | ret = __block_write_begin(page, 0, inline_size, |
812 | ext4_da_get_block_prep); | 812 | ext4_da_get_block_prep); |
813 | if (ret) { | 813 | if (ret) { |
814 | up_read(&EXT4_I(inode)->xattr_sem); | ||
815 | unlock_page(page); | ||
816 | page_cache_release(page); | ||
814 | ext4_truncate_failed_write(inode); | 817 | ext4_truncate_failed_write(inode); |
815 | goto out; | 818 | return ret; |
816 | } | 819 | } |
817 | 820 | ||
818 | SetPageDirty(page); | 821 | SetPageDirty(page); |