Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NAS-115139 / None / Update TrueNAS SCALE Linux kernel to v5.15 #27

Merged
merged 27 commits into from
Mar 29, 2022

Commits on Mar 28, 2022

  1. Configuration menu
    Copy the full SHA
    e75f728 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b577f26 View commit details
    Browse the repository at this point in the history
  3. Add initial support for large xattrs (#1)

    Support for alternate datastreams over the SMB protocol has been
    historically enabled in  such a way that Samba writes them as
    filesystem extended attributes in the user namespace. FreeBSD has no
    practical limit on xattr size, and so clients (often MacOS) may write
    ones that exceed the 64 KiB limit imposed by the Linux kernel. Since
    XATTR_SIZE_MAX is uesd in many places in the kernel, and not all
    filesystems support large xattrs, introduce new constant
    XATTR_LARGE_SIZE_MAX that is used as an alternate value if the
    filesystem sb_flags has SB_LARGEXATTR. There will be corresponding
    commit in ZFS to set this flag when it is defined and xattrs are
    enabled on the ZFS dataset.
    
    This commit also introduces flag SB_NFSV4ACL which will be used
    to indicate and enable NFSv4-specific behavior in kernel with regard
    to permissions.
    
    These new features / alternate behavior are controlled by the
    compile-time kernel compilation flag CONFIG_TRUENAS, which defaults
    to n (off). In principle, TrueNAS-specific changes that deviate from
    a vanilla Linux kernel can be removed for testing purposes by changing
    CONFIG_TRUENAS=n in the relevant build scripts.
    
    Signed-off-by: Andrew Walker <awalker@ixsystems.com>
    anodos325 authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    686bc43 View commit details
    Browse the repository at this point in the history
  4. Add nfsv4-specific permissions checks to kernel (#2)

    There are various places in which evaluation of permissions
    in the presence of an NFSv4 ACL is more nuanced than what is
    typical when evaluating traditional POSIX permissions. For
    example, a user may be permitted to delete a file if he
    has DELETE permissions on the file or DELETE_CHILD permissions
    on the parent directory. Traditional POSIX permissions will
    only check for MAY_WRITE | MAY_EXEC on parent directory.
    
    Several new inode permissions masks have been added to facilitate these
    NFSv4-specific checks corresponding to different NFSv4 permissions
    that grant abilities to make changes to files. For the purpose of
    this commit and the goal of providing rough a approximation of
    NFSv4 access checks, only write (and not read) access checks have
    been implemented. This is selectively done in a way to grant
    minimal compliance with permissions as defined in RFC-5661.
    
    The new permissions-related behavior is only applied when the
    inode sb_flag SB_NFS4ACL is present. In this case, the onus of full
    implementation of requisite features to satisfy the ACL behavior
    specified in RFC-5661 is delegated to the filesystem's inode
    permissions interface (i_op->permission). If possible we try to
    check for the convention POSIX permission first before trying
    the NFSv4-equivalent. For example, when writing an xattr, we
    check for WRITE_DATA before WRITE_NAMED_ATTRS because in the case
    of former with a trivial ACL we can avoid having to evaluate the
    full ACL, and instead merely look at POSIX mode.
    anodos325 authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    c6516c5 View commit details
    Browse the repository at this point in the history
  5. Bump changelong after merging v5.10.42

    Ryan Moeller authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    aac2ce5 View commit details
    Browse the repository at this point in the history
  6. Remove Chelsio FCoE options from kernel config

    csiostor seems to cause Chelsio T6 firmware to crash.
    
    Jira: NAS-110910
    Ryan Moeller authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    9e6cdc3 View commit details
    Browse the repository at this point in the history
  7. Bump changelog after merging v5.10.58

    Ryan Moeller authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    714c4f1 View commit details
    Browse the repository at this point in the history
  8. Add /sys/kernel/wait_for_device_probe attribute.

    Being written anything waits for all device probe to complete before
    returning.  After that `udevadm settle` used by ZFS scripts really
    can provide system with all disks detected for boot pool import.
    
    Ticket:	NAS-108200
    amotin authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    681fc1f View commit details
    Browse the repository at this point in the history
  9. truenas-scale: Add NTB to default tn.config

    Enable NTB and NTB tools in the Truenas config.  In addition, enable
    the Intel NTB driver, so that we have at least one NTB driver available.
    Jeff Kirsher authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    61af26a View commit details
    Browse the repository at this point in the history
  10. ntb/plx: Add support for PLX hardware

    Added initial support for PLX Non-Transparent Bridge.
    Jeff Kirsher authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    50a00b3 View commit details
    Browse the repository at this point in the history
  11. NTB: ntb_transport: Allow early client registration

    Before this change it was impossible to load client modules before
    NTB hardware is probed.  This change removes the limitation.  New
    NTB transports will get their children devices as they come in.
    amotin authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    24f2714 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    6d0cce4 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    c3cb04b View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    e9362d6 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    aec02cd View commit details
    Browse the repository at this point in the history
  16. ntb: Mask doorbells while processing them.

    This fixes interrupt storms on hardware using legacy level-triggered
    interrupts, since doorbell processing could take time after interrupt
    handler completion, that triggered extra interrupts in a loop.
    amotin authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    190664a View commit details
    Browse the repository at this point in the history
  17. ntb_hw_plx: Report NTB topology.

    I don't see it reasonably used anywhere, but why not.
    amotin authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    eb14d4b View commit details
    Browse the repository at this point in the history
  18. ntb_hw_plx: Remove unneeded pidx check.

    We support only one peer, so no need to check the index.
    amotin authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    e9395e3 View commit details
    Browse the repository at this point in the history
  19. Bump changelog after rebasing on v5.14.8

    Ryan Moeller authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    cc5bf2d View commit details
    Browse the repository at this point in the history
  20. Setup CI for TrueNAS/Linux repository

    Signed-off-by: Umer Saleem <usaleem@ixsystems.com>
    usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    cacb1a3 View commit details
    Browse the repository at this point in the history
  21. Skip duplicate actions for CI

    With the default workflow, GitHub Actions are invoked on
    every push and pull request. This commit adds the
    functionality to check if a previous successful run is
    present, then skip re-run for its pull request.
    
    Signed-off-by: Umer Saleem <usaleem@ixsystems.com>
    usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    f657470 View commit details
    Browse the repository at this point in the history
  22. Implement native NFSv4 ACLs in NFS server (#17)

    ZFS currently exposes native ZFS nfsv4 ACL type through
    the system.nfs4_acl_xdr xattr. underlying ACL type can
    be determined via inode sb flags (previous kernel work).
    
    This PR makes the Kernel NFS server aware of this ACL
    type and has it read from and write to the xattr is
    the relevant NFS40 ops.
    
    At this point only NFS40 ACLs are implemented (RFC3530)
    because they are currently only ones supported by the
    Kernel NFS client in Linux.
    
    ACE_INHERITED_ACE is returned in request for NFS40 ACL.
    This is for consistency with FreeBSD behavior, and is
    important for SMB / NFS compatibility. At a future
    point in time, full NFS41 ACL compatibility will
    most likely be required (for feature parity with
    other commercial vendors). nfs4-acl-tools version 0.3.3
    and earlier contains a bug where the persence of
    ACE_INHERITED_ACE is mistakenly identified as making
    ACE apply to the file owner.
    
    Signed-off-by: Andrew Walker <awalker@ixsystems.com>
    anodos325 authored and usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    9caa2bd View commit details
    Browse the repository at this point in the history
  23. Bump changelog after rebasing on v5.15.26

    Signed-off-by: Umer Saleem <usaleem@ixsystems.com>
    usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    2ded2c8 View commit details
    Browse the repository at this point in the history
  24. Better Linux kernel configuration procedure

    Previously for TrueNAS, Debian Linux kernel configuration was used and
    TrueNAS config options were added on top of that. Because of that,
    TrueNAS kernel config in 'scripts/package/truenas/tn.config' has grown
    very large and difficult to manage for TrueNAS only options.
    
    Debian Linux kernel configuration for version 5.10.92 has been added
    as 'debian_amd64.config' to keep the options from Debian seperate from
    TrueNAS options. TrueNAS only config options are stored in
    'truenas.config'.
    
    Kernel configuration can now be generated as:
    
    	1) make ARCH=x86_64 defconfig
    	2) ./scripts/kconfig/merge_config.sh .config \
    			./scripts/package/truenas/debian_amd64.config
    	3) ./scripts/kconfig/merge_config.sh .config \
    			./scripts/package/truenas/truenas.config
    	4) ./scripts/kconfig/merge_config.sh .config \
    			./scripts/package/truenas/debug.config
    
    Signed-off-by: Umer Saleem <usaleem@ixsystems.com>
    usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    d77d975 View commit details
    Browse the repository at this point in the history
  25. Provide addition free space for CI kernel build

    With kernel version 5.15 and Debian kernel config for v5.15, CI fails
    while exporting the artifacts due to lack of storage space. This commit
    adds a workaround to provide some extra free space.
    
    Reference: actions/runner-images#2840
    
    Signed-off-by: Umer Saleem <usaleem@ixsystems.com>
    usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    1fdbf02 View commit details
    Browse the repository at this point in the history
  26. Add Debian Linux kernel config for v5.15.15-2

    Signed-off-by: Umer Saleem <usaleem@ixsystems.com>
    usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    507f5aa View commit details
    Browse the repository at this point in the history
  27. Bump changelog after rebasing on v5.15.32

    Signed-off-by: Umer Saleem <usaleem@ixsystems.com>
    usaleem-ix committed Mar 28, 2022
    Configuration menu
    Copy the full SHA
    adb64a5 View commit details
    Browse the repository at this point in the history