ext4_kzalloc uses kmalloc instead of kzalloc, this was
introduced by commit 9933fc0. Due to this get_orlov_stats
was not working properly, making orlov allocator completely
random. kmalloc is replaced with kzalloc to get correct
stats.This is corrected in kernel as part of following
commit v3.0-7217-gdb9481c04
Added __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
as per this commit v3.11-rc2-221-g8be04b937.
Seagate-bug-id: MRP-3412
Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
Change-Id: I15f1a28537cb5e4f32d63527c99508383e12c97f
Reviewed-on: http://review.whamcloud.com/19541
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Yang Sheng <yang.sheng@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
+{
+ void *ret;
+
-+ ret = kmalloc(size, flags);
++ ret = kmalloc(size, flags | __GFP_NOWARN);
+ if (!ret)
+ ret = __vmalloc(size, flags, PAGE_KERNEL);
+ return ret;
+{
+ void *ret;
+
-+ ret = kmalloc(size, flags);
++ ret = kzalloc(size, flags | __GFP_NOWARN);
+ if (!ret)
+ ret = __vmalloc(size, flags | __GFP_ZERO, PAGE_KERNEL);
+ return ret;
+{
+ void *ret;
+
-+ ret = kmalloc(size, flags);
++ ret = kmalloc(size, flags | __GFP_NOWARN);
+ if (!ret)
+ ret = __vmalloc(size, flags, PAGE_KERNEL);
+ return ret;
+{
+ void *ret;
+
-+ ret = kmalloc(size, flags);
++ ret = kzalloc(size, flags | __GFP_NOWARN);
+ if (!ret)
+ ret = __vmalloc(size, flags | __GFP_ZERO, PAGE_KERNEL);
+ return ret;