Whamcloud - gitweb
LU-16847 ldiskfs: do not copy ldiskfs_chunk_trans_blocks 38/51138/7
authorAlexey Lyashkov <alexey.lyashkov@hpe.com>
Thu, 25 May 2023 07:45:29 +0000 (10:45 +0300)
committerOleg Drokin <green@whamcloud.com>
Sat, 8 Jul 2023 22:33:01 +0000 (22:33 +0000)
Do not make a copy of ldiskfs_chunk_trans_blocks() function.
Instead, export existing function from the ldiskfs module.

HPe-bug-id: LUS-11645
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Change-Id: Ic5d4a8e82b0284241b0e8e2a167271a6dc6fc297
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51138
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Andrew Perepechko <andrew.perepechko@hpe.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
18 files changed:
ldiskfs/kernel_patches/patches/linux-5.10/ext4-misc.patch
ldiskfs/kernel_patches/patches/linux-5.16/ext4-misc.patch
ldiskfs/kernel_patches/patches/linux-5.8/ext4-misc.patch
ldiskfs/kernel_patches/patches/oe2203/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel7.6/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel7.7/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel8.1/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel8.3/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel8.7/ext4-misc.patch
ldiskfs/kernel_patches/patches/rhel8/ext4-misc.patch
ldiskfs/kernel_patches/patches/sles15sp1/ext4-misc.patch
ldiskfs/kernel_patches/patches/sles15sp4/ext4-misc.patch
ldiskfs/kernel_patches/patches/suse15/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu18/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu19/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu20.04.3/ext4-misc.patch
ldiskfs/kernel_patches/patches/ubuntu2004/ext4-misc.patch
lustre/osd-ldiskfs/osd_io.c

index b694fd4..6816f87 100644 (file)
@@ -81,7 +81,7 @@ diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
 index ea9976b..e3630b0 100644
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -6206,3 +6206,19 @@ vm_fault_t ext4_filemap_fault(struct vm_fault *vmf)
+@@ -6206,3 +6206,20 @@ vm_fault_t ext4_filemap_fault(struct vm_fault *vmf)
  
        return ret;
  }
@@ -101,6 +101,7 @@ index ea9976b..e3630b0 100644
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
 +EXPORT_SYMBOL(__ext4_journal_ensure_credits);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
 index f09b60b..ff6c251 100644
 --- a/fs/ext4/namei.c
index dfb353b..8786f01 100644 (file)
@@ -73,7 +73,7 @@ diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
 index f0206e2..88e82d6 100644
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -6145,3 +6145,19 @@ out_error:
+@@ -6145,3 +6145,20 @@ out_error:
        ext4_journal_stop(handle);
        goto out;
  }
@@ -93,6 +93,7 @@ index f0206e2..88e82d6 100644
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
 +EXPORT_SYMBOL(__ext4_journal_ensure_credits);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
 index 249836e..627b9eb 100644
 --- a/fs/ext4/namei.c
index 3766f07..511e4c3 100644 (file)
@@ -90,7 +90,7 @@ diff -ur a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
 diff -ur a/fs/ext4/inode.c b/fs/ext4/inode.c
 --- a/fs/ext4/inode.c  2021-06-28 08:45:39.069955021 -0600
 +++ b/fs/ext4/inode.c  2021-06-28 08:46:06.921523449 -0600
-@@ -6088,3 +6088,18 @@
+@@ -6088,3 +6088,19 @@
  
        return ret;
  }
@@ -109,6 +109,7 @@ diff -ur a/fs/ext4/inode.c b/fs/ext4/inode.c
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 diff -ur a/fs/ext4/namei.c b/fs/ext4/namei.c
 --- a/fs/ext4/namei.c  2021-06-28 08:45:39.093954644 -0600
 +++ b/fs/ext4/namei.c  2021-06-28 08:46:06.921523449 -0600
index 0e1528f..126bffc 100644 (file)
@@ -73,7 +73,7 @@ diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
 index e868b33ed8f5..70f3bb4ef5eb 100644
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -6215,3 +6215,19 @@ vm_fault_t ext4_filemap_fault(struct vm_fault *vmf)
+@@ -6215,3 +6215,20 @@ vm_fault_t ext4_filemap_fault(struct vm_fault *vmf)
  
        return ret;
  }
@@ -93,6 +93,7 @@ index e868b33ed8f5..70f3bb4ef5eb 100644
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
 +EXPORT_SYMBOL(__ext4_journal_ensure_credits);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
 index f4dd3a7ee965..708822bdbfc1 100644
 --- a/fs/ext4/namei.c
index bbcfc7e..3385494 100644 (file)
@@ -100,7 +100,7 @@ Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/inode.c
 ===================================================================
 --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/inode.c
 +++ linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/inode.c
-@@ -5281,3 +5281,18 @@ out:
+@@ -5281,3 +5281,19 @@ out:
        sb_end_pagefault(inode->i_sb);
        return ret;
  }
index 20fcf26..36ae900 100644 (file)
@@ -99,7 +99,7 @@ Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/inode.c
 ===================================================================
 --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/inode.c
 +++ linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/inode.c
-@@ -5281,3 +5281,18 @@ out:
+@@ -5281,3 +5281,19 @@ out:
        sb_end_pagefault(inode->i_sb);
        return ret;
  }
@@ -118,6 +118,7 @@ Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/inode.c
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 Index: linux-3.10.0-123.13.2.el7.x86_64/fs/ext4/mballoc.c
 ===================================================================
 --- linux-3.10.0-123.13.2.el7.x86_64.orig/fs/ext4/mballoc.c
index baeff91..85a02bf 100644 (file)
@@ -73,7 +73,7 @@ Index: linux-4.18.0-147.0.3.el8/fs/ext4/inode.c
 ===================================================================
 --- linux-4.18.0-147.0.3.el8.orig/fs/ext4/inode.c
 +++ linux-4.18.0-147.0.3.el8/fs/ext4/inode.c
-@@ -6284,3 +6284,18 @@ vm_fault_t ext4_filemap_fault(struct vm_
+@@ -6284,3 +6284,19 @@ vm_fault_t ext4_filemap_fault(struct vm_
  
        return ret;
  }
@@ -92,6 +92,7 @@ Index: linux-4.18.0-147.0.3.el8/fs/ext4/inode.c
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/namei.c
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/namei.c
index 47e6bb6..04c9b15 100644 (file)
@@ -73,7 +73,7 @@ Index: linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
 ===================================================================
 --- linux-4.18.0-240.1.1.el8.orig/fs/ext4/inode.c
 +++ linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
-@@ -6343,3 +6343,19 @@ vm_fault_t ext4_filemap_fault(struct vm_
+@@ -6343,3 +6343,20 @@ vm_fault_t ext4_filemap_fault(struct vm_
  
        return ret;
  }
@@ -93,10 +93,11 @@ Index: linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
 +EXPORT_SYMBOL(__ext4_journal_ensure_credits);
-Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/namei.c
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
+Index: linux-stage/fs/ext4/namei.c
 ===================================================================
---- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/namei.c
-+++ linux-4.18.0-80.1.2.el8_0/fs/ext4/namei.c
+--- linux-stage.orig/fs/ext4/namei.c
++++ linux-stage/fs/ext4/namei.c
 @@ -49,7 +49,7 @@
  #define NAMEI_RA_BLOCKS  4
  #define NAMEI_RA_SIZE      (NAMEI_RA_CHUNKS * NAMEI_RA_BLOCKS)
index d8a8649..df6d180 100644 (file)
@@ -73,7 +73,7 @@ Index: linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
 ===================================================================
 --- linux-4.18.0-240.1.1.el8.orig/fs/ext4/inode.c
 +++ linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
-@@ -6343,3 +6343,19 @@ vm_fault_t ext4_filemap_fault(struct vm_
+@@ -6343,3 +6343,20 @@ vm_fault_t ext4_filemap_fault(struct vm_
 
        return ret;
  }
@@ -93,6 +93,7 @@ Index: linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
 +EXPORT_SYMBOL(__ext4_journal_ensure_credits);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/namei.c
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/namei.c
index 90d4626..602f4ef 100644 (file)
@@ -73,7 +73,7 @@ Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/inode.c
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/inode.c
 +++ linux-4.18.0-80.1.2.el8_0/fs/ext4/inode.c
-@@ -6267,3 +6267,18 @@ int ext4_filemap_fault(struct vm_fault *
+@@ -6267,3 +6267,19 @@ int ext4_filemap_fault(struct vm_fault *
  
        return err;
  }
@@ -92,6 +92,7 @@ Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/inode.c
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/namei.c
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/namei.c
index 7f94909..7b1fcc5 100644 (file)
@@ -75,7 +75,7 @@
   * NOTE! When we get the inode, we're the only people
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -6253,3 +6253,18 @@ int ext4_get_next_extent(struct inode *i
+@@ -6253,3 +6253,19 @@ int ext4_get_next_extent(struct inode *i
        result->es_len = 0;
        return 0;
  }
@@ -94,6 +94,7 @@
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 --- a/fs/ext4/namei.c
 +++ b/fs/ext4/namei.c
 @@ -48,7 +48,7 @@
index f157bc2..d2b0c25 100644 (file)
@@ -84,7 +84,7 @@ diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
 index 06ee22e..bb109d9 100644
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -6204,3 +6204,19 @@ out_error:
+@@ -6204,3 +6204,20 @@ out_error:
        ext4_journal_stop(handle);
        goto out;
  }
@@ -104,6 +104,7 @@ index 06ee22e..bb109d9 100644
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
 +EXPORT_SYMBOL(__ext4_journal_ensure_credits);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
 index 0d5b8ea..f207dd5 100644
 --- a/fs/ext4/namei.c
index 7f2b6d3..b2ae379 100644 (file)
@@ -75,7 +75,7 @@
   * NOTE! When we get the inode, we're the only people
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -6253,3 +6253,18 @@ int ext4_get_next_extent(struct inode *i
+@@ -6253,3 +6253,19 @@ int ext4_get_next_extent(struct inode *i
        result->es_len = 0;
        return 0;
  }
@@ -94,6 +94,7 @@
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 --- a/fs/ext4/namei.c
 +++ b/fs/ext4/namei.c
 @@ -48,7 +48,7 @@
index 77591ab..1d0c967 100644 (file)
@@ -73,7 +73,7 @@ Index: linux-4.15.0/fs/ext4/inode.c
 ===================================================================
 --- linux-4.15.0.orig/fs/ext4/inode.c
 +++ linux-4.15.0/fs/ext4/inode.c
-@@ -6179,3 +6179,18 @@ int ext4_filemap_fault(struct vm_fault *
+@@ -6179,3 +6179,19 @@ int ext4_filemap_fault(struct vm_fault *
  
        return err;
  }
@@ -92,6 +92,7 @@ Index: linux-4.15.0/fs/ext4/inode.c
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 Index: linux-4.15.0/fs/ext4/mballoc.c
 ===================================================================
 --- linux-4.15.0.orig/fs/ext4/mballoc.c
index 3076c80..da2b6c4 100644 (file)
@@ -73,7 +73,7 @@ diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
 index 306d64b..890aa90 100644
 --- a/fs/ext4/inode.c
 +++ b/fs/ext4/inode.c
-@@ -6325,3 +6325,18 @@ vm_fault_t ext4_filemap_fault(struct vm_fault *vmf)
+@@ -6325,3 +6325,19 @@ vm_fault_t ext4_filemap_fault(struct vm_fault *vmf)
  
        return ret;
  }
@@ -92,6 +92,7 @@ index 306d64b..890aa90 100644
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
 index 41aa6d9..88a84ec 100644
 --- a/fs/ext4/namei.c
index 35b12da..6dd16c4 100644 (file)
@@ -70,7 +70,7 @@ diff -ur a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
 diff -ur a/fs/ext4/inode.c b/fs/ext4/inode.c
 --- a/fs/ext4/inode.c  2022-03-24 16:23:11.721060900 -0600
 +++ b/fs/ext4/inode.c  2022-03-24 16:24:35.412642805 -0600
-@@ -6222,3 +6222,19 @@
+@@ -6222,3 +6222,20 @@
  
        return ret;
  }
@@ -90,6 +90,7 @@ diff -ur a/fs/ext4/inode.c b/fs/ext4/inode.c
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
 +EXPORT_SYMBOL(__ext4_journal_ensure_credits);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 diff -ur a/fs/ext4/namei.c b/fs/ext4/namei.c
 --- a/fs/ext4/namei.c  2022-03-24 16:23:11.725060881 -0600
 +++ b/fs/ext4/namei.c  2022-03-24 16:24:35.420642764 -0600
index c6fe6a5..94ccf1e 100644 (file)
@@ -73,7 +73,7 @@ Index: linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
 ===================================================================
 --- linux-4.18.0-240.1.1.el8.orig/fs/ext4/inode.c
 +++ linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
-@@ -6343,3 +6343,18 @@ vm_fault_t ext4_filemap_fault(struct vm_
+@@ -6343,3 +6343,19 @@ vm_fault_t ext4_filemap_fault(struct vm_
  
        return ret;
  }
@@ -92,6 +92,7 @@ Index: linux-4.18.0-240.1.1.el8/fs/ext4/inode.c
 +EXPORT_SYMBOL(__ext4_std_error);
 +EXPORT_SYMBOL(ext4fs_dirhash);
 +EXPORT_SYMBOL(ext4_get_inode_loc);
++EXPORT_SYMBOL(ext4_chunk_trans_blocks);
 Index: linux-4.18.0-80.1.2.el8_0/fs/ext4/namei.c
 ===================================================================
 --- linux-4.18.0-80.1.2.el8_0.orig/fs/ext4/namei.c
index e0338e9..1d4703f 100644 (file)
@@ -974,37 +974,6 @@ cleanup:
                osd_bufs_put(env, dt, lnb - i, i);
        return rc;
 }
-/* Borrow @ext4_chunk_trans_blocks */
-static int osd_chunk_trans_blocks(struct inode *inode, int nrblocks)
-{
-       ldiskfs_group_t groups;
-       int gdpblocks;
-       int idxblocks;
-       int depth;
-       int ret;
-
-       depth = ext_depth(inode);
-       idxblocks = depth * 2;
-
-       /*
-        * Now let's see how many group bitmaps and group descriptors need
-        * to account.
-        */
-       groups = idxblocks + 1;
-       gdpblocks = groups;
-       if (groups > LDISKFS_SB(inode->i_sb)->s_groups_count)
-               groups = LDISKFS_SB(inode->i_sb)->s_groups_count;
-       if (gdpblocks > LDISKFS_SB(inode->i_sb)->s_gdb_count)
-               gdpblocks = LDISKFS_SB(inode->i_sb)->s_gdb_count;
-
-       /* bitmaps and block group descriptor blocks */
-       ret = idxblocks + groups + gdpblocks;
-
-       /* Blocks for super block, inode, quota and xattr blocks */
-       ret += LDISKFS_META_TRANS_BLOCKS(inode->i_sb);
-
-       return ret;
-}
 
 #ifdef HAVE_LDISKFS_JOURNAL_ENSURE_CREDITS
 static int osd_extend_restart_trans(handle_t *handle, int needed,
@@ -2442,7 +2411,7 @@ static int osd_fallocate_preallocate(const struct lu_env *env,
        /*
         * credits to insert 1 extent into extent tree.
         */
-       credits = osd_chunk_trans_blocks(inode, blen);
+       credits = ldiskfs_chunk_trans_blocks(inode, blen);
        depth = ext_depth(inode);
 
        while (rc >= 0 && blen) {
@@ -2452,7 +2421,7 @@ static int osd_fallocate_preallocate(const struct lu_env *env,
                 * Recalculate credits when extent tree depth changes.
                 */
                if (depth != ext_depth(inode)) {
-                       credits = osd_chunk_trans_blocks(inode, blen);
+                       credits = ldiskfs_chunk_trans_blocks(inode, blen);
                        depth = ext_depth(inode);
                }