diff --git a/make.sh b/make.sh index 9372f9bab4f1f172cfa62e8a888c95bc0e823dcc..684a56608741671c90f28a42a257d4b5865c491b 100755 --- a/make.sh +++ b/make.sh @@ -30,9 +30,11 @@ apt install -yqqq git devscripts build-essential apt source linux -cp -rv meta linux-5.10.106/debian/patches +LINDIR=$(find . -maxdepth 1 -name 'linux-*' -type d) -cd linux-5.10.106 +cp -rv meta ${LINDIR}/debian/patches + +cd ${LINDIR} cd debian/patches echo '# META' >> series @@ -48,7 +50,6 @@ mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --yes' # Build balicku dpkg-buildpackage -uc -us -b || true -dpkg-buildpackage -uc -us -b || true cd .. mkdir build diff --git a/meta/assoc_array_gc.patch b/meta/assoc_array_gc.patch new file mode 100644 index 0000000000000000000000000000000000000000..ace20127716f2de5698d3f47accd33a0727eaf74 --- /dev/null +++ b/meta/assoc_array_gc.patch @@ -0,0 +1,25 @@ +Index: linux-4.19.132/lib/assoc_array.c +=================================================================== +--- linux-4.19.132.orig/lib/assoc_array.c ++++ linux-4.19.132/lib/assoc_array.c +@@ -1562,6 +1562,7 @@ continue_node: + for (slot = 0; slot < ASSOC_ARRAY_FAN_OUT; slot++) { + struct assoc_array_shortcut *s; + struct assoc_array_node *child; ++ int meta_ptr_present = 0; + + ptr = new_n->slots[slot]; + if (!ptr || assoc_array_ptr_is_leaf(ptr)) +@@ -1576,7 +1577,11 @@ continue_node: + child = assoc_array_ptr_to_node(ptr); + new_n->nr_leaves_on_branch += child->nr_leaves_on_branch; + +- if (child->nr_leaves_on_branch <= nr_free + 1) { ++ for (i = 0; i < ASSOC_ARRAY_FAN_OUT; i++) { ++ struct assoc_array_ptr *p = child->slots[i]; ++ if (p && assoc_array_ptr_is_meta(p)) meta_ptr_present = 1; ++ } ++ if (child->nr_leaves_on_branch <= nr_free + 1 && !meta_ptr_present) { + /* Fold the child node into this one */ + pr_devel("[%d] fold node %lu/%d [nx %d]\n", + slot, child->nr_leaves_on_branch, nr_free + 1, diff --git a/meta/meta_config.patch b/meta/meta_config.patch new file mode 100644 index 0000000000000000000000000000000000000000..1ae07fa898c62488ec163d8bf7abeb423e2b3eaf --- /dev/null +++ b/meta/meta_config.patch @@ -0,0 +1,16 @@ +Index: linux-5.10.103/debian/config/config +=================================================================== +--- linux-5.10.103.orig/debian/config/config ++++ linux-5.10.103/debian/config/config +@@ -6358,8 +6358,9 @@ CONFIG_TASK_IO_ACCOUNTING=y + CONFIG_PSI=y + # CONFIG_PSI_DEFAULT_DISABLED is not set + CONFIG_CPU_ISOLATION=y +-# CONFIG_IKCONFIG is not set +-CONFIG_LOG_BUF_SHIFT=17 ++CONFIG_IKCONFIG=y ++CONFIG_IKCONFIG_PROC=y ++CONFIG_LOG_BUF_SHIFT=21 + CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 + CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 + CONFIG_NUMA_BALANCING=y diff --git a/meta/nfs_recover_stateid_wait.patch b/meta/nfs_recover_stateid_wait.patch new file mode 100644 index 0000000000000000000000000000000000000000..fa80c606487dd65c606fb76d327b53a48bcfe6fc --- /dev/null +++ b/meta/nfs_recover_stateid_wait.patch @@ -0,0 +1,26 @@ +Index: linux-5.10.103/fs/nfs/nfs4state.c +=================================================================== +--- linux-5.10.103.orig/fs/nfs/nfs4state.c ++++ linux-5.10.103/fs/nfs/nfs4state.c +@@ -2433,7 +2433,7 @@ void nfs41_handle_sequence_flag_errors(s + * Those flags are expected to remain set until we're done + * recovering (see RFC5661, section 18.46.3). + */ +- if (recovery) ++ if (recovery || test_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) ) + goto out_recovery; + + if (flags & SEQ4_STATUS_RESTART_RECLAIM_NEEDED) +Index: linux-5.10.103/fs/nfs/nfs4proc.c +=================================================================== +--- linux-5.10.103.orig/fs/nfs/nfs4proc.c ++++ linux-5.10.103/fs/nfs/nfs4proc.c +@@ -1694,7 +1694,7 @@ static void nfs_set_open_stateid_locked( + trace_nfs4_open_stateid_update_wait(state->inode, stateid, 0); + + if (!fatal_signal_pending(current)) { +- if (schedule_timeout(5*HZ) == 0) ++ if (schedule_timeout(1*HZ) == 0) + status = -EAGAIN; + else + status = 0;