Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-18459

Lustre 2.16.1 ldiskfs doesn't build on latest EL9.4 (5.14.0-427.42.1.el9_4.x86_64)

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • None
    • Lustre 2.16.1
    • None
    • 3
    • 9223372036854775807

    Description

      Opening this after discussing with Andreas at the DDN Data Summit.

      ldiskfs doesn't build against the latest EL9.4 kernel (5.14.0-427.42.1.el9_4.x86_64) due to some recent changes in ext4. I think it's due to the changes in ext4_xattr_inode_lookup_create() in particular.

      From rpm -q --changelog kernel-5.14.0-427.42.1.el9_4:

      * Fri Oct 11 2024 Scott Weaver <scweaver@redhat.com> [5.14.0-427.41.1.el9_4]
      <snip>
      - ext4: do not create EA inode under buffer lock (Carlos Maiolino) [RHEL-48285 RHEL-48282] {CVE-2024-40972}
      - ext4: fold quota accounting into ext4_xattr_inode_lookup_create() (Carlos Maiolino) [RHEL-48285 RHEL-48282] {CVE-2024-40972}
      - ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super() (Carlos Maiolino) [RHEL-48519 RHEL-48517] {CVE-2024-40998}
      - ext4: turn quotas off if mount failed after enabling quotas (Carlos Maiolino) [RHEL-48519 RHEL-48517] {CVE-2024-40998}
      

       

      The reject is:
       

      $ cat ./ldiskfs/linux-stage/fs/ext4/xattr.c.rej
      --- fs/ext4/xattr.c
      +++ fs/ext4/xattr.c
      @@ -1639,6 +1669,7 @@ static int ext4_xattr_set_entry(struct ext4_xattr_info *i,
       	int in_inode = i->in_inode;
       	struct inode *old_ea_inode = NULL;
       	struct inode *new_ea_inode = NULL;
      +	struct delayed_iput_work *diwork = NULL;
       	size_t old_size, new_size;
       	int ret;
       
      @@ -1872,7 +1907,7 @@ update_hash:
       
       	ret = 0;
       out:
      -	iput(old_ea_inode);
      +	delayed_iput(old_ea_inode, diwork);
       	iput(new_ea_inode);
       	return ret;
       }
      
      

       
      Attaching logs of build failure with the latest tag 2.16.1.

      Note: building against 5.14.0-427.31.1.el9 (the version tested by Whamcloud and listed in lustre/ChangeLog) works fine.

      Attachments

        Issue Links

          Activity

            [LU-18459] Lustre 2.16.1 ldiskfs doesn't build on latest EL9.4 (5.14.0-427.42.1.el9_4.x86_64)
            pjones Peter Jones made changes -
            Resolution New: Duplicate [ 3 ]
            Status Original: Open [ 1 ] New: Resolved [ 5 ]
            sthiell Stephane Thiell made changes -
            Comment [ All good with the patch, thanks! ]

            The patch seems to work (after resolving the conflict in lustre/ChangeLog, but that's easy). I applied it on top of 2.16.1 and we are testing that right now with kernel 5.14.0-427.42.1.el9_4.x86_64.

            sthiell Stephane Thiell added a comment - The patch seems to work (after resolving the conflict in lustre/ChangeLog, but that's easy). I applied it on top of 2.16.1 and we are testing that right now with kernel 5.14.0-427.42.1.el9_4.x86_64.

            Thanks Andreas! I will give it a try soon.

            sthiell Stephane Thiell added a comment - Thanks Andreas! I will give it a try soon.

            sthiell it looks like LU-18414 already has a patch for this kernel.

            adilger Andreas Dilger added a comment - sthiell it looks like LU-18414 already has a patch for this kernel.
            adilger Andreas Dilger made changes -
            Link New: This issue is related to LU-18414 [ LU-18414 ]
            adilger Andreas Dilger made changes -
            Link New: This issue is related to DCO-9890 [ DCO-9890 ]
            sthiell Stephane Thiell made changes -
            Description Original: Opening this after discussing with Andreas at the DDN Data Summit.

            ldiskfs doesn't build against the latest EL9.4 kernel (5.14.0-427.42.1.el9_4.x86_64) due to some recent changes in ext4. I thinks it's due to the changes in {{ext4_xattr_inode_lookup_create()}} in particular.

            From {{{}rpm -q --changelog kernel-5.14.0-427.42.1.el9_4{}}}:
            {noformat}
            * Fri Oct 11 2024 Scott Weaver <scweaver@redhat.com> [5.14.0-427.41.1.el9_4]
            <snip>
            - ext4: do not create EA inode under buffer lock (Carlos Maiolino) [RHEL-48285 RHEL-48282] {CVE-2024-40972}
            - ext4: fold quota accounting into ext4_xattr_inode_lookup_create() (Carlos Maiolino) [RHEL-48285 RHEL-48282] {CVE-2024-40972}
            - ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super() (Carlos Maiolino) [RHEL-48519 RHEL-48517] {CVE-2024-40998}
            - ext4: turn quotas off if mount failed after enabling quotas (Carlos Maiolino) [RHEL-48519 RHEL-48517] {CVE-2024-40998}
            {noformat}
             

            The reject is:
             
            {noformat}
            $ cat ./ldiskfs/linux-stage/fs/ext4/xattr.c.rej
            --- fs/ext4/xattr.c
            +++ fs/ext4/xattr.c
            @@ -1639,6 +1669,7 @@ static int ext4_xattr_set_entry(struct ext4_xattr_info *i,
              int in_inode = i->in_inode;
              struct inode *old_ea_inode = NULL;
              struct inode *new_ea_inode = NULL;
            + struct delayed_iput_work *diwork = NULL;
              size_t old_size, new_size;
              int ret;
             
            @@ -1872,7 +1907,7 @@ update_hash:
             
              ret = 0;
             out:
            - iput(old_ea_inode);
            + delayed_iput(old_ea_inode, diwork);
              iput(new_ea_inode);
              return ret;
             }

            {noformat}
             
            Attaching logs of build failure with the latest tag 2.16.1.

            Note: building against 5.14.0-427.31.1.el9 (the version tested by Whamcloud and listed in lustre/ChangeLog) works fine.
            New: Opening this after discussing with Andreas at the DDN Data Summit.

            ldiskfs doesn't build against the latest EL9.4 kernel (5.14.0-427.42.1.el9_4.x86_64) due to some recent changes in ext4. I think it's due to the changes in {{ext4_xattr_inode_lookup_create()}} in particular.

            From {{{}rpm -q --changelog kernel-5.14.0-427.42.1.el9_4{}}}:
            {noformat}
            * Fri Oct 11 2024 Scott Weaver <scweaver@redhat.com> [5.14.0-427.41.1.el9_4]
            <snip>
            - ext4: do not create EA inode under buffer lock (Carlos Maiolino) [RHEL-48285 RHEL-48282] {CVE-2024-40972}
            - ext4: fold quota accounting into ext4_xattr_inode_lookup_create() (Carlos Maiolino) [RHEL-48285 RHEL-48282] {CVE-2024-40972}
            - ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super() (Carlos Maiolino) [RHEL-48519 RHEL-48517] {CVE-2024-40998}
            - ext4: turn quotas off if mount failed after enabling quotas (Carlos Maiolino) [RHEL-48519 RHEL-48517] {CVE-2024-40998}
            {noformat}
             

            The reject is:
             
            {noformat}
            $ cat ./ldiskfs/linux-stage/fs/ext4/xattr.c.rej
            --- fs/ext4/xattr.c
            +++ fs/ext4/xattr.c
            @@ -1639,6 +1669,7 @@ static int ext4_xattr_set_entry(struct ext4_xattr_info *i,
              int in_inode = i->in_inode;
              struct inode *old_ea_inode = NULL;
              struct inode *new_ea_inode = NULL;
            + struct delayed_iput_work *diwork = NULL;
              size_t old_size, new_size;
              int ret;
             
            @@ -1872,7 +1907,7 @@ update_hash:
             
              ret = 0;
             out:
            - iput(old_ea_inode);
            + delayed_iput(old_ea_inode, diwork);
              iput(new_ea_inode);
              return ret;
             }

            {noformat}
             
            Attaching logs of build failure with the latest tag 2.16.1.

            Note: building against 5.14.0-427.31.1.el9 (the version tested by Whamcloud and listed in lustre/ChangeLog) works fine.
            sthiell Stephane Thiell created issue -

            People

              wc-triage WC Triage
              sthiell Stephane Thiell
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: