From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9060735C6A3; Tue, 21 Jul 2026 21:42:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784670143; cv=none; b=mEbrVJivG692mp9Y8vQTRDD6MPJaDxWjBhhPpt8CzEfss5KMtpPlzRq74ICvmWPoGkPOKruM61aKmKY8K6ZXuuND0eB8T+wSJjnR9SU+qdI5tAMNP0IzU+pLX4ch8a9vq9J5M/nLEW2pVD3nWzKK097K58tB6DSxt4zYI0QK0VY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784670143; c=relaxed/simple; bh=knIFuaJPA6R0gK50kLALAYiznTsdSmS0PMYNtXTLSeE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Dla/uYl00LAveM9/P/S2NwrOQJmh0oEI2CqQpvJ/yJ32p6U/+fmdbRhyFxlVbqjRyzVP6cgYtRJbgEUphrRHb/kg5LyAKg7/bAGlD++litNICZvI722JWrhawzJTglHCwzd5n7cmu6CH4dTWk6QAAhL6cwv8MTG7lTYXuQO4epk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=Kf/seHWq; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="Kf/seHWq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0E201F000E9; Tue, 21 Jul 2026 21:42:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1784670142; bh=aNvb+eten3ie09VHuQEFFsw++2RyXhr6hhdNB8L5u34=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Kf/seHWqcnfziYrwg1qM7l0dY+EsRnbJnhYg+znodlwr/SxmxPmPXv/eKeJGGH77+ 089DFOwvHIeF9hVxJNAJMMgM1RvICxIUMLVFNQJdwliyM0rhA0D7EOX1fJTh/5PBVY TxRlU6L02fNrV9s/vt5ipkUemqbCKVgqWt8xn3sI= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Fredric Cover , Steve French Subject: [PATCH 6.1 0821/1067] smb: client: use kvzalloc() for megabyte buffer in simple fallocate Date: Tue, 21 Jul 2026 17:23:42 +0200 Message-ID: <20260721152442.919005173@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260721152424.521567757@linuxfoundation.org> References: <20260721152424.521567757@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.1-stable review patch. If anyone has any objections, please let me know. ------------------ From: Fredric Cover commit 806c00c23e3ce8eae397a40ced536ef88ae4e012 upstream. Currently in smb3_simple_fallocate_range(), a 1 MB buffer is allocated using kzalloc(). Under heavy memory fragmentation, a contiguous 1 MB block of physical memory (an order-8 allocation) may not be available, causing the allocation to fail. This failure was observed during xfstests generic/013 on a 4GB RAM test machine running fsstress: fsstress: page allocation failure: order:8, mode:0x40dc0(GFP_KERNEL|__GFP_ZERO|__GFP_COMP), nodemask=(null),cpuset=/,mems_allowed=0 Call Trace: dump_stack_lvl+0x5d/0x80 warn_alloc+0x163/0x190 __alloc_pages_slowpath.constprop.0+0x71b/0x12f0 __alloc_frozen_pages_noprof+0x2f6/0x340 alloc_pages_mpol+0xb6/0x170 ___kmalloc_large_node+0xb3/0xd0 __kmalloc_large_noprof+0x1e/0xc0 smb3_simple_falloc.isra.0+0x62b/0x960 cifs_fallocate+0xed/0x180 vfs_fallocate+0x165/0x3c0 __x64_sys_fallocate+0x48/0xa0 do_syscall_64+0xe1/0x640 entry_SYSCALL_64_after_hwframe+0x76/0x7e Node 0 Normal: 3375*4kB ... 7*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB Since this scratch buffer does not require physically contiguous memory, switch the allocation to kvzalloc(). This retains the performance benefits of kmalloc() under normal conditions, while gracefully falling back to virtually contiguous memory when physical allocation fails. Fixes: 966a3cb7c7db ("cifs: improve fallocate emulation") Cc: stable@vger.kernel.org Signed-off-by: Fredric Cover Tested-by: Fredric Cover Signed-off-by: Steve French Signed-off-by: Greg Kroah-Hartman --- fs/smb/client/smb2ops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/fs/smb/client/smb2ops.c +++ b/fs/smb/client/smb2ops.c @@ -3664,7 +3664,7 @@ static int smb3_simple_fallocate_range(u if (rc) goto out; - buf = kzalloc(1024 * 1024, GFP_KERNEL); + buf = kvzalloc(1024 * 1024, GFP_KERNEL); if (buf == NULL) { rc = -ENOMEM; goto out; @@ -3721,7 +3721,7 @@ static int smb3_simple_fallocate_range(u out: kfree(out_data); - kfree(buf); + kvfree(buf); return rc; }