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 AE8EB375F8B; Fri, 10 Jul 2026 20:29:30 +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=1783715371; cv=none; b=K9Fc2UBTJb0wYYKRRHqgPS9RRY7OGH42gCaJGyf0rROoeNthWSpuH/6o2DZ0SrB6hGSuBt8+O3cBYtj62URPZTnwe9YRfGErlFNKRXI3+NFSMXY75tRw+6FbilQSnVRxYTsMWPvKQIh0SER6vKYXgzaZUTevXcHmJeLE61KRhq0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783715371; c=relaxed/simple; bh=FCbfUVh/U5U1bRHGVKwt5UwXPlTKD0aFqMH/5ltaMTc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r0gnb1Zg3ihpN/ae7PazbbBXbc5XNwgZPpO+703P0oljG5C8AaRDibFUDrUdjp0hVA1mVmPHgvz9eAh9e3AQgubw7JO9GI6MvsdT6eIfj3/ffNSObXMEYGqg0MHvQzGKu46ZeQJVwda04hpBrzToQveqiHbnIRxhWaDu8atSykg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RPSZGvZw; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RPSZGvZw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A991E1F000E9; Fri, 10 Jul 2026 20:29:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783715370; bh=aHI3HtWrClTz694ElWYDKnmNafJcRIPtS6NobkrqaKw=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=RPSZGvZwyFoF6ClRKN9BpyNR8hpTZDK48TFpXqSipi37enIb5dUT+EctMObMcHEeV Poej32H984Cm5vZ1zE7duVLeHD7YFi8mfbo6mFJ4FJOXEPXEGfFbv3VcFF00WQ1jLn ci5P3XH7w6VvBnhFwpIJkr1BIv5hune/exyRWAf4inZWPzWlVWUvSq6OdsuSNl2puz vb5dtyH1nVV9TGprKRirNigppE+kAcMcj9yNM+9vchbstpVeQeFueRmccReV6x/9MS /rOKm4zBsOKdlYcPeiG1SaWJiU5ywO100RbwZxu+N6fqHKIukkw5XKszp/AF+Cr13o 8grz4e0FS40fg== From: Lorenzo Stoakes Date: Fri, 10 Jul 2026 21:17:12 +0100 Subject: [PATCH v2 31/33] mm/vma: use guard clauses in can_vma_merge_[before, after]() Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260710-b4-pre-scalable-cow-v2-31-2a5aa403d977@kernel.org> References: <20260710-b4-pre-scalable-cow-v2-0-2a5aa403d977@kernel.org> In-Reply-To: <20260710-b4-pre-scalable-cow-v2-0-2a5aa403d977@kernel.org> To: Andrew Morton , David Hildenbrand , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Rik van Riel , Harry Yoo , Jann Horn , Lance Yang , Pedro Falcato , Russell King , Dinh Nguyen , Simon Schuster , "James E.J. Bottomley" , Helge Deller , Alexander Viro , Christian Brauner , Jan Kara , Dan Williams , Matthew Wilcox , Muchun Song , Oscar Salvador , Masami Hiramatsu , Oleg Nesterov , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , James Clark , Zi Yan , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Miaohe Lin , Naoya Horiguchi , Xu Xin , Chengming Zhou , SJ Park , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Hugh Dickins , Peter Xu , Kees Cook , Marek Szyprowski , Robin Murphy , Andrey Konovalov , Alexander Potapenko , Dmitry Vyukov , Steven Rostedt , Mathieu Desnoyers , Jarkko Sakkinen , Dave Hansen , Thomas Gleixner , Borislav Petkov , x86@kernel.org, "H. Peter Anvin" , Ian Abbott , H Hartley Sweeten , Lucas Stach , Christian Gmeiner , David Airlie , Simona Vetter , Patrik Jakobsson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Tomi Valkeinen , Thierry Reding , Mikko Perttunen , Jonathan Hunter , Christian Koenig , Huang Rui , Matthew Auld , Jason Gunthorpe , Yishai Hadas , Shameer Kolothum , Kevin Tian , Ankit Agrawal , Alex Williamson , Paolo Bonzini , Shakeel Butt , Usama Arif Cc: Lorenzo Stoakes , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-parisc@vger.kernel.org, linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev, linux-perf-users@vger.kernel.org, linux-trace-kernel@vger.kernel.org, damon@lists.linux.dev, iommu@lists.linux.dev, kasan-dev@googlegroups.com, linux-sgx@vger.kernel.org, etnaviv@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-tegra@vger.kernel.org, kvm@vger.kernel.org, Russell King X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2052; i=ljs@kernel.org; h=from:subject:message-id; bh=FCbfUVh/U5U1bRHGVKwt5UwXPlTKD0aFqMH/5ltaMTc=; b=owGbwMvMwCV2fu7ZrsZH9SKMp9WSGLICg23zeIx4g070KS4J7SnPZellbdxntl3j/lv3O2c9w v49kCntKGVhEONikBVTZHn+RXx/kEjYvM4L/m4wc1iZQIYwcHEKwERufGT4Z6zbfDP29beUVLPf /n92Zv2YtttYd9U3pvkvz+nZFXIKCTMyrBHkfC6/9G9fO9ff/UuWhPwoNS5edYn3QQfz2ZTDa99 vYwQA X-Developer-Key: i=ljs@kernel.org; a=openpgp; fpr=E7F417BF5214569E89D04F46CF9DCD8A81E27F14 Rather than combining a bunch of conditionals in a single expression, simplify by inverting the mergeability requirements into guard clauses. that is - instead of checking what must be true for the conditions to be met, instead check the inverse of the requirements and return false if any are true, defaulting to true. No functional change intended. Reviewed-by: Pedro Falcato Reviewed-by: Gregory Price Signed-off-by: Lorenzo Stoakes --- mm/vma.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/mm/vma.c b/mm/vma.c index 737f0d692e6b..9d556d33b24b 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -215,13 +215,13 @@ static void init_multi_vma_prep(struct vma_prepare *vp, */ static bool can_vma_merge_before(struct vma_merge_struct *vmg) { - if (is_mergeable_vma(vmg, /* merge_next = */ true) && - is_mergeable_anon_vma(vmg, /* merge_next = */ true)) { - if (vmg_end_pgoff(vmg) == vma_start_pgoff(vmg->next)) - return true; - } - - return false; + if (!is_mergeable_vma(vmg, /* merge_next = */ true)) + return false; + if (!is_mergeable_anon_vma(vmg, /* merge_next = */ true)) + return false; + if (vmg_end_pgoff(vmg) != vma_start_pgoff(vmg->next)) + return false; + return true; } /* @@ -235,12 +235,13 @@ static bool can_vma_merge_before(struct vma_merge_struct *vmg) */ static bool can_vma_merge_after(struct vma_merge_struct *vmg) { - if (is_mergeable_vma(vmg, /* merge_next = */ false) && - is_mergeable_anon_vma(vmg, /* merge_next = */ false)) { - if (vma_end_pgoff(vmg->prev) == vmg_start_pgoff(vmg)) - return true; - } - return false; + if (!is_mergeable_vma(vmg, /* merge_next = */ false)) + return false; + if (!is_mergeable_anon_vma(vmg, /* merge_next = */ false)) + return false; + if (vma_end_pgoff(vmg->prev) != vmg_start_pgoff(vmg)) + return false; + return true; } static void __vma_link_file(struct vm_area_struct *vma, -- 2.55.0