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>
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;
}
+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 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;
}
+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
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;
}
+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 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;
}
+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
===================================================================
--- 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;
}
===================================================================
--- 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;
}
+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
===================================================================
--- 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;
}
+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
===================================================================
--- 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;
}
+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)
===================================================================
--- 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;
}
+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
===================================================================
--- 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;
}
+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
* 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;
}
+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 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;
}
+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
* 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;
}
+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 @@
===================================================================
--- 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;
}
+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 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;
}
+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
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;
}
+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
===================================================================
--- 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;
}
+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
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,
/*
* 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) {
* 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);
}