Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'flex-array-transformations-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux

Pull flexible-array updates from Gustavo A. R. Silva.

* tag 'flex-array-transformations-6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
fs: omfs: Use flexible-array member in struct omfs_extent
sparc: openpromio: Address -Warray-bounds warning
reiserfs: Replace one-element array with flexible-array member

+13 -13
+2 -3
arch/sparc/include/uapi/asm/openpromio.h
··· 10 10 * were chosen to be exactly equal to the SunOS equivalents. 11 11 */ 12 12 13 - struct openpromio 14 - { 13 + struct openpromio { 15 14 unsigned int oprom_size; /* Actual size of the oprom_array. */ 16 - char oprom_array[1]; /* Holds property names and values. */ 15 + char oprom_array[]; /* Holds property names and values. */ 17 16 }; 18 17 19 18 #define OPROMMAXPARAM 4096 /* Maximum size of oprom_array. */
+6 -6
fs/omfs/file.c
··· 14 14 { 15 15 return (sbi->s_sys_blocksize - offset - 16 16 sizeof(struct omfs_extent)) / 17 - sizeof(struct omfs_extent_entry) + 1; 17 + sizeof(struct omfs_extent_entry); 18 18 } 19 19 20 20 void omfs_make_empty_table(struct buffer_head *bh, int offset) ··· 24 24 oe->e_next = ~cpu_to_be64(0ULL); 25 25 oe->e_extent_count = cpu_to_be32(1), 26 26 oe->e_fill = cpu_to_be32(0x22), 27 - oe->e_entry.e_cluster = ~cpu_to_be64(0ULL); 28 - oe->e_entry.e_blocks = ~cpu_to_be64(0ULL); 27 + oe->e_entry[0].e_cluster = ~cpu_to_be64(0ULL); 28 + oe->e_entry[0].e_blocks = ~cpu_to_be64(0ULL); 29 29 } 30 30 31 31 int omfs_shrink_inode(struct inode *inode) ··· 68 68 69 69 last = next; 70 70 next = be64_to_cpu(oe->e_next); 71 - entry = &oe->e_entry; 71 + entry = oe->e_entry; 72 72 73 73 /* ignore last entry as it is the terminator */ 74 74 for (; extent_count > 1; extent_count--) { ··· 117 117 u64 *ret_block) 118 118 { 119 119 struct omfs_extent_entry *terminator; 120 - struct omfs_extent_entry *entry = &oe->e_entry; 120 + struct omfs_extent_entry *entry = oe->e_entry; 121 121 struct omfs_sb_info *sbi = OMFS_SB(inode->i_sb); 122 122 u32 extent_count = be32_to_cpu(oe->e_extent_count); 123 123 u64 new_block = 0; ··· 245 245 246 246 extent_count = be32_to_cpu(oe->e_extent_count); 247 247 next = be64_to_cpu(oe->e_next); 248 - entry = &oe->e_entry; 248 + entry = oe->e_entry; 249 249 250 250 if (extent_count > max_extents) 251 251 goto out_brelse;
+1 -1
fs/omfs/omfs_fs.h
··· 77 77 __be64 e_next; /* next extent table location */ 78 78 __be32 e_extent_count; /* total # extents in this table */ 79 79 __be32 e_fill; 80 - struct omfs_extent_entry e_entry; /* start of extent entries */ 80 + struct omfs_extent_entry e_entry[]; /* start of extent entries */ 81 81 }; 82 82 83 83 #endif
+3 -2
fs/reiserfs/fix_node.c
··· 2252 2252 2253 2253 return sizeof(struct virtual_node) + 2254 2254 max(max_num_of_items * sizeof(struct virtual_item), 2255 - sizeof(struct virtual_item) + sizeof(struct direntry_uarea) + 2256 - (max_num_of_entries - 1) * sizeof(__u16)); 2255 + sizeof(struct virtual_item) + 2256 + struct_size_t(struct direntry_uarea, entry_sizes, 2257 + max_num_of_entries)); 2257 2258 } 2258 2259 2259 2260 /*
+1 -1
fs/reiserfs/reiserfs.h
··· 2373 2373 struct direntry_uarea { 2374 2374 int flags; 2375 2375 __u16 entry_count; 2376 - __u16 entry_sizes[1]; 2376 + __u16 entry_sizes[]; 2377 2377 } __attribute__ ((__packed__)); 2378 2378 2379 2379 /***************************************************************************