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;