Allow conversion of characters in Mac remap range. Part 1
[firefly-linux-kernel-4.4.55.git] / fs / ext4 / xattr.c
index 4eec399ec807bc6733d1a90b8c3d0d205eb795c1..e7387337060c96f06fe9360966992bb286c20496 100644 (file)
@@ -369,6 +369,9 @@ ext4_xattr_get(struct inode *inode, int name_index, const char *name,
 {
        int error;
 
+       if (strlen(name) > 255)
+               return -ERANGE;
+
        down_read(&EXT4_I(inode)->xattr_sem);
        error = ext4_xattr_ibody_get(inode, name_index, name, buffer,
                                     buffer_size);
@@ -513,6 +516,7 @@ static void ext4_xattr_update_super_block(handle_t *handle,
        if (EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_EXT_ATTR))
                return;
 
+       BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get_write_access");
        if (ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh) == 0) {
                EXT4_SET_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_EXT_ATTR);
                ext4_handle_dirty_super(handle, sb);
@@ -532,6 +536,7 @@ ext4_xattr_release_block(handle_t *handle, struct inode *inode,
        struct mb_cache *ext4_mb_cache = EXT4_GET_MB_CACHE(inode);
 
        ce = mb_cache_entry_get(ext4_mb_cache, bh->b_bdev, bh->b_blocknr);
+       BUFFER_TRACE(bh, "get_write_access");
        error = ext4_journal_get_write_access(handle, bh);
        if (error)
                goto out;
@@ -774,6 +779,7 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode,
        if (s->base) {
                ce = mb_cache_entry_get(ext4_mb_cache, bs->bh->b_bdev,
                                        bs->bh->b_blocknr);
+               BUFFER_TRACE(bs->bh, "get_write_access");
                error = ext4_journal_get_write_access(handle, bs->bh);
                if (error)
                        goto cleanup;
@@ -859,6 +865,7 @@ inserted:
                                                EXT4_C2B(EXT4_SB(sb), 1));
                                if (error)
                                        goto cleanup;
+                               BUFFER_TRACE(new_bh, "get_write_access");
                                error = ext4_journal_get_write_access(handle,
                                                                      new_bh);
                                if (error)
@@ -896,7 +903,7 @@ inserted:
                         * take i_data_sem because we will test
                         * i_delalloc_reserved_flag in ext4_mb_new_blocks
                         */
-                       down_read((&EXT4_I(inode)->i_data_sem));
+                       down_read(&EXT4_I(inode)->i_data_sem);
                        block = ext4_new_meta_blocks(handle, inode, goal, 0,
                                                     NULL, &error);
                        up_read((&EXT4_I(inode)->i_data_sem));