From 4d23b3ae40e9b507371d7b258584d062517d6d9c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 11 Nov 2024 13:58:06 +0100 Subject: [PATCH] drop queue-5.15/udf-allocate-name-buffer-in-directory-iterator-on-heap.patch --- queue-5.15/series | 1 - ...buffer-in-directory-iterator-on-heap.patch | 90 ------------------- 2 files changed, 91 deletions(-) delete mode 100644 queue-5.15/udf-allocate-name-buffer-in-directory-iterator-on-heap.patch diff --git a/queue-5.15/series b/queue-5.15/series index 484dce2b8c0..3c85a79b7f9 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -68,4 +68,3 @@ usb-serial-option-add-quectel-rg650v.patch irqchip-gic-v3-force-propagation-of-the-active-state-with-a-read-back.patch ocfs2-remove-entry-once-instead-of-null-ptr-dereference-in-ocfs2_xa_remove.patch ucounts-fix-counter-leak-in-inc_rlimit_get_ucounts.patch -udf-allocate-name-buffer-in-directory-iterator-on-heap.patch diff --git a/queue-5.15/udf-allocate-name-buffer-in-directory-iterator-on-heap.patch b/queue-5.15/udf-allocate-name-buffer-in-directory-iterator-on-heap.patch deleted file mode 100644 index aecbb0f3951..00000000000 --- a/queue-5.15/udf-allocate-name-buffer-in-directory-iterator-on-heap.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 0aba4860b0d0216a1a300484ff536171894d49d8 Mon Sep 17 00:00:00 2001 -From: Jan Kara -Date: Tue, 20 Dec 2022 12:38:45 +0100 -Subject: udf: Allocate name buffer in directory iterator on heap - -From: Jan Kara - -commit 0aba4860b0d0216a1a300484ff536171894d49d8 upstream. - -Currently we allocate name buffer in directory iterators (struct -udf_fileident_iter) on stack. These structures are relatively large -(some 360 bytes on 64-bit architectures). For udf_rename() which needs -to keep three of these structures in parallel the stack usage becomes -rather heavy - 1536 bytes in total. Allocate the name buffer in the -iterator from heap to avoid excessive stack usage. - -Link: https://lore.kernel.org/all/202212200558.lK9x1KW0-lkp@intel.com -Reported-by: kernel test robot -Signed-off-by: Jan Kara -Cc: Hauke Mehrtens -Signed-off-by: Greg Kroah-Hartman ---- - fs/udf/directory.c | 25 ++++++++++++++++--------- - fs/udf/udfdecl.h | 2 +- - 2 files changed, 17 insertions(+), 10 deletions(-) - ---- a/fs/udf/directory.c -+++ b/fs/udf/directory.c -@@ -248,9 +248,14 @@ int udf_fiiter_init(struct udf_fileident - iter->elen = 0; - iter->epos.bh = NULL; - iter->name = NULL; -- -- if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) -- return udf_copy_fi(iter); -+ iter->namebuf = kmalloc(UDF_NAME_LEN_CS0, GFP_KERNEL); -+ if (!iter->namebuf) -+ return -ENOMEM; -+ -+ if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { -+ err = udf_copy_fi(iter); -+ goto out; -+ } - - if (inode_bmap(dir, iter->pos >> dir->i_blkbits, &iter->epos, - &iter->eloc, &iter->elen, &iter->loffset) != -@@ -260,17 +265,17 @@ int udf_fiiter_init(struct udf_fileident - udf_err(dir->i_sb, - "position %llu not allocated in directory (ino %lu)\n", - (unsigned long long)pos, dir->i_ino); -- return -EFSCORRUPTED; -+ err = -EFSCORRUPTED; -+ goto out; - } - err = udf_fiiter_load_bhs(iter); - if (err < 0) -- return err; -+ goto out; - err = udf_copy_fi(iter); -- if (err < 0) { -+out: -+ if (err < 0) - udf_fiiter_release(iter); -- return err; -- } -- return 0; -+ return err; - } - - int udf_fiiter_advance(struct udf_fileident_iter *iter) -@@ -307,6 +312,8 @@ void udf_fiiter_release(struct udf_filei - brelse(iter->bh[0]); - brelse(iter->bh[1]); - iter->bh[0] = iter->bh[1] = NULL; -+ kfree(iter->namebuf); -+ iter->namebuf = NULL; - } - - static void udf_copy_to_bufs(void *buf1, int len1, void *buf2, int len2, ---- a/fs/udf/udfdecl.h -+++ b/fs/udf/udfdecl.h -@@ -99,7 +99,7 @@ struct udf_fileident_iter { - struct extent_position epos; /* Position after the above extent */ - struct fileIdentDesc fi; /* Copied directory entry */ - uint8_t *name; /* Pointer to entry name */ -- uint8_t namebuf[UDF_NAME_LEN_CS0]; /* Storage for entry name in case -+ uint8_t *namebuf; /* Storage for entry name in case - * the name is split between two blocks - */ - }; -- 2.47.2