--- /dev/null +++ b/ldiskfs/kernel_patches/patches/rhel6.3/ext4-notalloc_under_idatasem.patch @@ -0,0 +1,14 @@ +Index: linux-stage/fs/ext4/extents.c +=================================================================== +--- linux-stage.orig/fs/ext4/extents.c 2015-07-13 22:22:56.000000000 +0300 ++++ linux-stage/fs/ext4/extents.c 2015-07-13 22:24:05.000000000 +0300 +@@ -4318,7 +4318,8 @@ static int ext4_find_delayed_extent(stru + struct buffer_head *head = NULL; + unsigned int nr_pages = PAGE_SIZE / sizeof(struct page *); + +- pages = kmalloc(PAGE_SIZE, GFP_KERNEL); ++ /* we are running under i_data_sem so don't re-enter fs code */ ++ pages = kmalloc(PAGE_SIZE, GFP_NOFS); + if (pages == NULL) + return -ENOMEM; +