Skip to content
Snippets Groups Projects
  1. Feb 13, 2023
  2. Feb 12, 2023
  3. Jan 31, 2023
    • Roberto Sassu's avatar
      ima: Introduce MMAP_CHECK_REQPROT hook · 4958db32
      Roberto Sassu authored
      
      Commit 98de59bf ("take calculation of final prot in
      security_mmap_file() into a helper") caused ima_file_mmap() to receive the
      protections requested by the application and not those applied by the
      kernel.
      
      After restoring the original MMAP_CHECK behavior, existing attestation
      servers might be broken due to not being ready to handle new entries
      (previously missing) in the IMA measurement list.
      
      Restore the original correct MMAP_CHECK behavior, instead of keeping the
      current buggy one and introducing a new hook with the correct behavior.
      Otherwise, there would have been the risk of IMA users not noticing the
      problem at all, as they would actively have to update the IMA policy, to
      switch to the correct behavior.
      
      Also, introduce the new MMAP_CHECK_REQPROT hook to keep the current
      behavior, so that IMA users could easily fix a broken attestation server,
      although this approach is discouraged due to potentially missing
      measurements.
      
      Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
      Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      4958db32
    • Roberto Sassu's avatar
      ima: Align ima_file_mmap() parameters with mmap_file LSM hook · 4971c268
      Roberto Sassu authored
      
      Commit 98de59bf ("take calculation of final prot in
      security_mmap_file() into a helper") moved the code to update prot, to be
      the actual protections applied to the kernel, to a new helper called
      mmap_prot().
      
      However, while without the helper ima_file_mmap() was getting the updated
      prot, with the helper ima_file_mmap() gets the original prot, which
      contains the protections requested by the application.
      
      A possible consequence of this change is that, if an application calls
      mmap() with only PROT_READ, and the kernel applies PROT_EXEC in addition,
      that application would have access to executable memory without having this
      event recorded in the IMA measurement list. This situation would occur for
      example if the application, before mmap(), calls the personality() system
      call with READ_IMPLIES_EXEC as the first argument.
      
      Align ima_file_mmap() parameters with those of the mmap_file LSM hook, so
      that IMA can receive both the requested prot and the final prot. Since the
      requested protections are stored in a new variable, and the final
      protections are stored in the existing variable, this effectively restores
      the original behavior of the MMAP_CHECK hook.
      
      Cc: stable@vger.kernel.org
      Fixes: 98de59bf ("take calculation of final prot in security_mmap_file() into a helper")
      Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
      Reviewed-by: default avatarStefan Berger <stefanb@linux.ibm.com>
      Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      4971c268
    • Xiu Jianfeng's avatar
      evm: call dump_security_xattr() in all cases to remove code duplication · 8250865c
      Xiu Jianfeng authored
      
      Currently dump_security_xattr() is used to dump security xattr value
      which is larger than 64 bytes, otherwise, pr_debug() is used. In order
      to remove code duplication, refactor dump_security_xattr() and call it
      in all cases.
      
      Signed-off-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
      Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      8250865c
  4. Jan 19, 2023
    • Christian Brauner's avatar
      fs: port i_{g,u}id_into_vfs{g,u}id() to mnt_idmap · e67fe633
      Christian Brauner authored
      
      Convert to struct mnt_idmap.
      Remove legacy file_mnt_user_ns() and mnt_user_ns().
      
      Last cycle we merged the necessary infrastructure in
      256c8aed ("fs: introduce dedicated idmap type for mounts").
      This is just the conversion to struct mnt_idmap.
      
      Currently we still pass around the plain namespace that was attached to a
      mount. This is in general pretty convenient but it makes it easy to
      conflate namespaces that are relevant on the filesystem with namespaces
      that are relevent on the mount level. Especially for non-vfs developers
      without detailed knowledge in this area this can be a potential source for
      bugs.
      
      Once the conversion to struct mnt_idmap is done all helpers down to the
      really low-level helpers will take a struct mnt_idmap argument instead of
      two namespace arguments. This way it becomes impossible to conflate the two
      eliminating the possibility of any bugs. All of the vfs and all filesystems
      only operate on struct mnt_idmap.
      
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      e67fe633
    • Christian Brauner's avatar
      fs: port i_{g,u}id_{needs_}update() to mnt_idmap · 0dbe12f2
      Christian Brauner authored
      
      Convert to struct mnt_idmap.
      
      Last cycle we merged the necessary infrastructure in
      256c8aed ("fs: introduce dedicated idmap type for mounts").
      This is just the conversion to struct mnt_idmap.
      
      Currently we still pass around the plain namespace that was attached to a
      mount. This is in general pretty convenient but it makes it easy to
      conflate namespaces that are relevant on the filesystem with namespaces
      that are relevent on the mount level. Especially for non-vfs developers
      without detailed knowledge in this area this can be a potential source for
      bugs.
      
      Once the conversion to struct mnt_idmap is done all helpers down to the
      really low-level helpers will take a struct mnt_idmap argument instead of
      two namespace arguments. This way it becomes impossible to conflate the two
      eliminating the possibility of any bugs. All of the vfs and all filesystems
      only operate on struct mnt_idmap.
      
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      0dbe12f2
    • Christian Brauner's avatar
      fs: port acl to mnt_idmap · 700b7940
      Christian Brauner authored
      
      Convert to struct mnt_idmap.
      
      Last cycle we merged the necessary infrastructure in
      256c8aed ("fs: introduce dedicated idmap type for mounts").
      This is just the conversion to struct mnt_idmap.
      
      Currently we still pass around the plain namespace that was attached to a
      mount. This is in general pretty convenient but it makes it easy to
      conflate namespaces that are relevant on the filesystem with namespaces
      that are relevent on the mount level. Especially for non-vfs developers
      without detailed knowledge in this area this can be a potential source for
      bugs.
      
      Once the conversion to struct mnt_idmap is done all helpers down to the
      really low-level helpers will take a struct mnt_idmap argument instead of
      two namespace arguments. This way it becomes impossible to conflate the two
      eliminating the possibility of any bugs. All of the vfs and all filesystems
      only operate on struct mnt_idmap.
      
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      700b7940
    • Christian Brauner's avatar
      fs: port xattr to mnt_idmap · 39f60c1c
      Christian Brauner authored
      
      Convert to struct mnt_idmap.
      
      Last cycle we merged the necessary infrastructure in
      256c8aed ("fs: introduce dedicated idmap type for mounts").
      This is just the conversion to struct mnt_idmap.
      
      Currently we still pass around the plain namespace that was attached to a
      mount. This is in general pretty convenient but it makes it easy to
      conflate namespaces that are relevant on the filesystem with namespaces
      that are relevent on the mount level. Especially for non-vfs developers
      without detailed knowledge in this area this can be a potential source for
      bugs.
      
      Once the conversion to struct mnt_idmap is done all helpers down to the
      really low-level helpers will take a struct mnt_idmap argument instead of
      two namespace arguments. This way it becomes impossible to conflate the two
      eliminating the possibility of any bugs. All of the vfs and all filesystems
      only operate on struct mnt_idmap.
      
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      39f60c1c
    • Christian Brauner's avatar
      fs: port ->permission() to pass mnt_idmap · 4609e1f1
      Christian Brauner authored
      
      Convert to struct mnt_idmap.
      
      Last cycle we merged the necessary infrastructure in
      256c8aed ("fs: introduce dedicated idmap type for mounts").
      This is just the conversion to struct mnt_idmap.
      
      Currently we still pass around the plain namespace that was attached to a
      mount. This is in general pretty convenient but it makes it easy to
      conflate namespaces that are relevant on the filesystem with namespaces
      that are relevent on the mount level. Especially for non-vfs developers
      without detailed knowledge in this area this can be a potential source for
      bugs.
      
      Once the conversion to struct mnt_idmap is done all helpers down to the
      really low-level helpers will take a struct mnt_idmap argument instead of
      two namespace arguments. This way it becomes impossible to conflate the two
      eliminating the possibility of any bugs. All of the vfs and all filesystems
      only operate on struct mnt_idmap.
      
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      4609e1f1
    • Christian Brauner's avatar
      fs: port ->setattr() to pass mnt_idmap · c1632a0f
      Christian Brauner authored
      
      Convert to struct mnt_idmap.
      
      Last cycle we merged the necessary infrastructure in
      256c8aed ("fs: introduce dedicated idmap type for mounts").
      This is just the conversion to struct mnt_idmap.
      
      Currently we still pass around the plain namespace that was attached to a
      mount. This is in general pretty convenient but it makes it easy to
      conflate namespaces that are relevant on the filesystem with namespaces
      that are relevent on the mount level. Especially for non-vfs developers
      without detailed knowledge in this area this can be a potential source for
      bugs.
      
      Once the conversion to struct mnt_idmap is done all helpers down to the
      really low-level helpers will take a struct mnt_idmap argument instead of
      two namespace arguments. This way it becomes impossible to conflate the two
      eliminating the possibility of any bugs. All of the vfs and all filesystems
      only operate on struct mnt_idmap.
      
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      c1632a0f
  5. Jan 18, 2023
  6. Dec 13, 2022
  7. Nov 28, 2022
    • Tianjia Zhang's avatar
      ima: Fix hash dependency to correct algorithm · b6018af4
      Tianjia Zhang authored
      
      Commit d2825fa9 ("crypto: sm3,sm4 - move into crypto directory") moves
      the SM3 and SM4 stand-alone library and the algorithm implementation for
      the Crypto API into the same directory, and the corresponding relationship
      of Kconfig is modified, CONFIG_CRYPTO_SM3/4 corresponds to the stand-alone
      library of SM3/4, and CONFIG_CRYPTO_SM3/4_GENERIC corresponds to the
      algorithm implementation for the Crypto API. Therefore, it is necessary
      for this module to depend on the correct algorithm.
      
      Fixes: d2825fa9 ("crypto: sm3,sm4 - move into crypto directory")
      Cc: Jason A. Donenfeld <Jason@zx2c4.com>
      Cc: stable@vger.kernel.org # v5.19+
      Signed-off-by: default avatarTianjia Zhang <tianjia.zhang@linux.alibaba.com>
      Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      b6018af4
  8. Nov 18, 2022
  9. Nov 16, 2022
  10. Nov 03, 2022
    • Roberto Sassu's avatar
      ima: Fix memory leak in __ima_inode_hash() · 8c1d6a05
      Roberto Sassu authored
      
      Commit f3cc6b25 ("ima: always measure and audit files in policy") lets
      measurement or audit happen even if the file digest cannot be calculated.
      
      As a result, iint->ima_hash could have been allocated despite
      ima_collect_measurement() returning an error.
      
      Since ima_hash belongs to a temporary inode metadata structure, declared
      at the beginning of __ima_inode_hash(), just add a kfree() call if
      ima_collect_measurement() returns an error different from -ENOMEM (in that
      case, ima_hash should not have been allocated).
      
      Cc: stable@vger.kernel.org
      Fixes: 280fe836 ("ima: Always return a file measurement in ima_file_hash()")
      Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
      Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      8c1d6a05
  11. Nov 02, 2022
  12. Nov 01, 2022
  13. Oct 28, 2022
  14. Oct 26, 2022
  15. Oct 20, 2022
    • Christian Brauner's avatar
      evm: remove evm_xattr_acl_change() · e10796b8
      Christian Brauner authored
      
      The security and integrity infrastructure has dedicated hooks now so
      evm_xattr_acl_change() is dead code. Before this commit the callchain was:
      
      evm_protect_xattr()
      -> evm_xattr_change()
         -> evm_xattr_acl_change()
      
      where evm_protect_xattr() was hit from evm_inode_setxattr() and
      evm_inode_removexattr(). But now we have evm_inode_set_acl() and
      evm_inode_remove_acl() and have switched over the vfs to rely on the posix
      acl api so the code isn't hit anymore.
      
      Suggested-by: default avatarPaul Moore <paul@paul-moore.com>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      e10796b8
    • Christian Brauner's avatar
      integrity: implement get and set acl hook · e61b135f
      Christian Brauner authored
      The current way of setting and getting posix acls through the generic
      xattr interface is error prone and type unsafe. The vfs needs to
      interpret and fixup posix acls before storing or reporting it to
      userspace. Various hacks exist to make this work. The code is hard to
      understand and difficult to maintain in it's current form. Instead of
      making this work by hacking posix acls through xattr handlers we are
      building a dedicated posix acl api around the get and set inode
      operations. This removes a lot of hackiness and makes the codepaths
      easier to maintain. A lot of background can be found in [1].
      
      So far posix acls were passed as a void blob to the security and
      integrity modules. Some of them like evm then proceed to interpret the
      void pointer and convert it into the kernel internal struct posix acl
      representation to perform their integrity checking magic. This is
      obviously pretty problematic as that requires knowledge that only the
      vfs is guaranteed to have and has lead to various bugs. Add a proper
      security hook for setting posix acls and pass down the posix acls in
      their appropriate vfs format instead of hacking it through a void
      pointer stored in the uapi format.
      
      I spent considerate time in the security module and integrity
      infrastructure and audited all codepaths. EVM is the only part that
      really has restrictions based on the actual posix acl values passed
      through it (e.g., i_mode). Before this dedicated hook EVM used to translate
      from the uapi posix acl format sent to it in the form of a void pointer
      into the vfs format. This is not a good thing. Instead of hacking around in
      the uapi struct give EVM the posix acls in the appropriate vfs format and
      perform sane permissions checks that mirror what it used to to in the
      generic xattr hook.
      
      IMA doesn't have any restrictions on posix acls. When posix acls are
      changed it just wants to update its appraisal status to trigger an EVM
      revalidation.
      
      The removal of posix acls is equivalent to passing NULL to the posix set
      acl hooks. This is the same as before through the generic xattr api.
      
      Link: https://lore.kernel.org/all/20220801145520.1532837-1-brauner@kernel.org
      
       [1]
      Acked-by: Paul Moore <paul@paul-moore.com> (LSM)
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      e61b135f
  16. Sep 30, 2022
    • Orlando Chamberlain's avatar
      efi: Correct Macmini DMI match in uefi cert quirk · bab715bd
      Orlando Chamberlain authored
      
      It turns out Apple doesn't capitalise the "mini" in "Macmini" in DMI, which
      is inconsistent with other model line names.
      
      Correct the capitalisation of Macmini in the quirk for skipping loading
      platform certs on T2 Macs.
      
      Currently users get:
      
      ------------[ cut here ]------------
      [Firmware Bug]: Page fault caused by firmware at PA: 0xffffa30640054000
      WARNING: CPU: 1 PID: 8 at arch/x86/platform/efi/quirks.c:735 efi_crash_gracefully_on_page_fault+0x55/0xe0
      Modules linked in:
      CPU: 1 PID: 8 Comm: kworker/u12:0 Not tainted 5.18.14-arch1-2-t2 #1 4535eb3fc40fd08edab32a509fbf4c9bc52d111e
      Hardware name: Apple Inc. Macmini8,1/Mac-7BA5B2DFE22DDD8C, BIOS 1731.120.10.0.0 (iBridge: 19.16.15071.0.0,0) 04/24/2022
      Workqueue: efi_rts_wq efi_call_rts
      ...
      ---[ end trace 0000000000000000 ]---
      efi: Froze efi_rts_wq and disabled EFI Runtime Services
      integrity: Couldn't get size: 0x8000000000000015
      integrity: MODSIGN: Couldn't get UEFI db list
      efi: EFI Runtime Services are disabled!
      integrity: Couldn't get size: 0x8000000000000015
      integrity: Couldn't get UEFI dbx list
      
      Fixes: 155ca952 ("efi: Do not import certificates from UEFI Secure Boot for T2 Macs")
      Cc: stable@vger.kernel.org
      Cc: Aditya Garg <gargaditya08@live.com>
      Tested-by: default avatarSamuel Jiang <chyishian.jiang@gmail.com>
      Signed-off-by: default avatarOrlando Chamberlain <redecorating@protonmail.com>
      Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      bab715bd
  17. Aug 31, 2022
    • Christian Brauner's avatar
      acl: move idmapping handling into posix_acl_xattr_set() · 52edb408
      Christian Brauner authored
      The uapi POSIX ACL struct passed through the value argument during
      setxattr() contains {g,u}id values encoded via ACL_{GROUP,USER} entries
      that should actually be stored in the form of k{g,u}id_t (See [1] for a
      long explanation of the issue.).
      
      In 0c5fd887 ("acl: move idmapped mount fixup into vfs_{g,s}etxattr()")
      we took the mount's idmapping into account in order to let overlayfs
      handle POSIX ACLs on idmapped layers correctly. The fixup is currently
      performed directly in vfs_setxattr() which piles on top of the earlier
      hackiness by handling the mount's idmapping and stuff the vfs{g,u}id_t
      values into the uapi struct as well. While that is all correct and works
      fine it's just ugly.
      
      Now that we have introduced vfs_make_posix_acl() earlier move handling
      idmapped mounts out of vfs_setxattr() and into the POSIX ACL handler
      where it belongs.
      
      Note that we also need to call vfs_make_posix_acl() for EVM which
      interpretes POSIX ACLs during security_inode_setxattr(). Leave them a
      longer comment for future reference.
      
      All filesystems that support idmapped mounts via FS_ALLOW_IDMAP use the
      standard POSIX ACL xattr handlers and are covered by this change. This
      includes overlayfs which simply calls vfs_{g,s}etxattr().
      
      The following filesystems use custom POSIX ACL xattr handlers: 9p, cifs,
      ecryptfs, and ntfs3 (and overlayfs but we've covered that in the paragraph
      above) and none of them support idmapped mounts yet.
      
      Link: https://lore.kernel.org/all/20220801145520.1532837-1-brauner@kernel.org/
      
       [1]
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      Reviewed-by: default avatarSeth Forshee (DigitalOcean) <sforshee@kernel.org>
      52edb408
  18. Aug 23, 2022
  19. Jul 20, 2022
    • Eric Snowberg's avatar
      lockdown: Fix kexec lockdown bypass with ima policy · 543ce63b
      Eric Snowberg authored
      
      The lockdown LSM is primarily used in conjunction with UEFI Secure Boot.
      This LSM may also be used on machines without UEFI.  It can also be
      enabled when UEFI Secure Boot is disabled.  One of lockdown's features
      is to prevent kexec from loading untrusted kernels.  Lockdown can be
      enabled through a bootparam or after the kernel has booted through
      securityfs.
      
      If IMA appraisal is used with the "ima_appraise=log" boot param,
      lockdown can be defeated with kexec on any machine when Secure Boot is
      disabled or unavailable.  IMA prevents setting "ima_appraise=log" from
      the boot param when Secure Boot is enabled, but this does not cover
      cases where lockdown is used without Secure Boot.
      
      To defeat lockdown, boot without Secure Boot and add ima_appraise=log to
      the kernel command line; then:
      
        $ echo "integrity" > /sys/kernel/security/lockdown
        $ echo "appraise func=KEXEC_KERNEL_CHECK appraise_type=imasig" > \
          /sys/kernel/security/ima/policy
        $ kexec -ls unsigned-kernel
      
      Add a call to verify ima appraisal is set to "enforce" whenever lockdown
      is enabled.  This fixes CVE-2022-21505.
      
      Cc: stable@vger.kernel.org
      Fixes: 29d3c1c8 ("kexec: Allow kexec_file() with appropriate IMA policy when locked down")
      Signed-off-by: default avatarEric Snowberg <eric.snowberg@oracle.com>
      Acked-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      Reviewed-by: default avatarJohn Haxby <john.haxby@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      543ce63b
  20. Jul 13, 2022
  21. Jul 07, 2022
  22. Jul 01, 2022
    • Jonathan McDowell's avatar
      x86/kexec: Carry forward IMA measurement log on kexec · b69a2afd
      Jonathan McDowell authored
      
      On kexec file load, the Integrity Measurement Architecture (IMA)
      subsystem may verify the IMA signature of the kernel and initramfs, and
      measure it. The command line parameters passed to the kernel in the
      kexec call may also be measured by IMA.
      
      A remote attestation service can verify a TPM quote based on the TPM
      event log, the IMA measurement list and the TPM PCR data. This can
      be achieved only if the IMA measurement log is carried over from the
      current kernel to the next kernel across the kexec call.
      
      PowerPC and ARM64 both achieve this using device tree with a
      "linux,ima-kexec-buffer" node. x86 platforms generally don't make use of
      device tree, so use the setup_data mechanism to pass the IMA buffer to
      the new kernel.
      
      Signed-off-by: default avatarJonathan McDowell <noodles@fb.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Reviewed-by: Mimi Zohar <zohar@linux.ibm.com> # IMA function definitions
      Link: https://lore.kernel.org/r/YmKyvlF3my1yWTvK@noodles-fedora-PC23Y6EG
      b69a2afd
  23. Jun 26, 2022
    • Christian Brauner's avatar
      attr: port attribute changes to new types · b27c82e1
      Christian Brauner authored
      Now that we introduced new infrastructure to increase the type safety
      for filesystems supporting idmapped mounts port the first part of the
      vfs over to them.
      
      This ports the attribute changes codepaths to rely on the new better
      helpers using a dedicated type.
      
      Before this change we used to take a shortcut and place the actual
      values that would be written to inode->i_{g,u}id into struct iattr. This
      had the advantage that we moved idmappings mostly out of the picture
      early on but it made reasoning about changes more difficult than it
      should be.
      
      The filesystem was never explicitly told that it dealt with an idmapped
      mount. The transition to the value that needed to be stored in
      inode->i_{g,u}id appeared way too early and increased the probability of
      bugs in various codepaths.
      
      We know place the same value in struct iattr no matter if this is an
      idmapped mount or not. The vfs will only deal with type safe
      vfs{g,u}id_t. This makes it massively safer to perform permission checks
      as the type will tell us what checks we need to perform and what helpers
      we need to use.
      
      Fileystems raising FS_ALLOW_IDMAP can't simply write ia_vfs{g,u}id to
      inode->i_{g,u}id since they are different types. Instead they need to
      use the dedicated vfs{g,u}id_to_k{g,u}id() helpers that map the
      vfs{g,u}id into the filesystem.
      
      The other nice effect is that filesystems like overlayfs don't need to
      care about idmappings explicitly anymore and can simply set up struct
      iattr accordingly directly.
      
      Link: https://lore.kernel.org/lkml/CAHk-=win6+ahs1EwLkcq8apqLi_1wXFWbrPf340zYEhObpz4jA@mail.gmail.com [1]
      Link: https://lore.kernel.org/r/20220621141454.2914719-9-brauner@kernel.org
      
      
      Cc: Seth Forshee <sforshee@digitalocean.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Aleksa Sarai <cyphar@cyphar.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      CC: linux-fsdevel@vger.kernel.org
      Reviewed-by: default avatarSeth Forshee <sforshee@digitalocean.com>
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      b27c82e1
Loading