Merge tag 'for-6.6-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Oct 2023 20:58:32 +0000 (13:58 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Oct 2023 20:58:32 +0000 (13:58 -0700)
Pull btrfs fixes from David Sterba:
 "A revert of recent mount option parsing fix, this breaks mounts with
  security options.

  The second patch is a flexible array annotation"

* tag 'for-6.6-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
  btrfs: add __counted_by for struct btrfs_delayed_item and use struct_size()
  Revert "btrfs: reject unknown mount options early"

1  2 
fs/btrfs/delayed-inode.c

diff --combined fs/btrfs/delayed-inode.c
@@@ -313,7 -313,7 +313,7 @@@ static struct btrfs_delayed_item *btrfs
  {
        struct btrfs_delayed_item *item;
  
-       item = kmalloc(sizeof(*item) + data_len, GFP_NOFS);
+       item = kmalloc(struct_size(item, data, data_len), GFP_NOFS);
        if (item) {
                item->data_len = data_len;
                item->type = type;
@@@ -1844,9 -1844,9 +1844,9 @@@ static void fill_stack_inode_item(struc
                                      inode->i_mtime.tv_nsec);
  
        btrfs_set_stack_timespec_sec(&inode_item->ctime,
 -                                   inode->i_ctime.tv_sec);
 +                                   inode_get_ctime(inode).tv_sec);
        btrfs_set_stack_timespec_nsec(&inode_item->ctime,
 -                                    inode->i_ctime.tv_nsec);
 +                                    inode_get_ctime(inode).tv_nsec);
  
        btrfs_set_stack_timespec_sec(&inode_item->otime,
                                     BTRFS_I(inode)->i_otime.tv_sec);
@@@ -1897,8 -1897,8 +1897,8 @@@ int btrfs_fill_inode(struct inode *inod
        inode->i_mtime.tv_sec = btrfs_stack_timespec_sec(&inode_item->mtime);
        inode->i_mtime.tv_nsec = btrfs_stack_timespec_nsec(&inode_item->mtime);
  
 -      inode->i_ctime.tv_sec = btrfs_stack_timespec_sec(&inode_item->ctime);
 -      inode->i_ctime.tv_nsec = btrfs_stack_timespec_nsec(&inode_item->ctime);
 +      inode_set_ctime(inode, btrfs_stack_timespec_sec(&inode_item->ctime),
 +                      btrfs_stack_timespec_nsec(&inode_item->ctime));
  
        BTRFS_I(inode)->i_otime.tv_sec =
                btrfs_stack_timespec_sec(&inode_item->otime);