From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 17434C0219E for ; Wed, 12 Feb 2025 06:33:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A2A54280011; Wed, 12 Feb 2025 01:33:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D9E128000E; Wed, 12 Feb 2025 01:33:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 85289280011; Wed, 12 Feb 2025 01:33:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 62F7628000E for ; Wed, 12 Feb 2025 01:33:30 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 16C6380D6C for ; Wed, 12 Feb 2025 06:33:30 +0000 (UTC) X-FDA: 83110326180.06.6AAC917 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) by imf04.hostedemail.com (Postfix) with ESMTP id 411F640006 for ; Wed, 12 Feb 2025 06:33:28 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=ZNDHTwgq; spf=pass (imf04.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.54 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739342008; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=a8HQ6KKZTY10gG1FVyTeRkLW7p1KkTSFkDVXwYemgoI=; b=4wkoakqXzB/CVlx+leLRTt+YsBv3wL+pbN7oQR52J18y77SOLsYTsJGkB6hU4SpnXR30nm EhHsZEZKz4GaGeVYeNOKlA+JzBBQwVh707V2ESO2WkqaxNI6BTaqthyr8BY9XjydXLzH0I SBisu1kc9JgyhRSqWqfj1RVGkDAFjb0= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=ZNDHTwgq; spf=pass (imf04.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.54 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739342008; a=rsa-sha256; cv=none; b=8o/nFlmd++MbjeXxQ4u5lwJj92IqcluGZ+nhsyIPlkD/0mG/yX4vhGHiMC+IuAt7Vy2Cu8 jLBvQZuqScR11ibFgbA5uzgfK3LycwGc5Dw3pQXacO8/aQSTUJMnK6AgtXJyCj0qSjTgS5 soSJbsgsWo1sFytBhN7hCKGV6a8M45w= Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-2fa1a3c88c5so8505086a91.3 for ; Tue, 11 Feb 2025 22:33:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1739342007; x=1739946807; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=a8HQ6KKZTY10gG1FVyTeRkLW7p1KkTSFkDVXwYemgoI=; b=ZNDHTwgqHMmhVZQ8NvTvHdmPY4a1h3Uls670cQNgZmIDijdD10Cz5RffXn3frg+yhn c6sa+oaxYPT1VAl2GaXDiHt7gFRnKw0R5vOkBHMGHGuFr0X/LBy0yIwPcLKcpoCSqA4x 9rpSFdpuUkdPpkcaQNIl/S5DBDMHpFUq7KIMk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739342007; x=1739946807; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a8HQ6KKZTY10gG1FVyTeRkLW7p1KkTSFkDVXwYemgoI=; b=AFD1MquwdpP1qFB59h6ZlykRsYDtPG80EqyPhYkPgz40BwxPJFwnOZbCEkLF2oFjl7 /jy6hQV8d8XoNq1eamZ7Yei2jgSl3YUxGsjSKQ7DbUOvqzsMr5GbaguZrikohecGlYVh hc6sHJID10dmdyZIdY50xrQQ1AbhQlSGDom2p2KmSlagGTBAivk2IW/2eYIdiaZ6akNM nmwbOv0MY73AA9KHIXUSIfFSTQvhqmYi9hk9K0aXoOqw4y7DQ2ct5jCdt/NjkrZjfya1 LPLAa7jwHrFgtLZu/zgWXgHoWUKxWraNRHSYwm9S5PcW1w68AxGdXdpkvi4cSjHQ7zXi 8Fgw== X-Forwarded-Encrypted: i=1; AJvYcCXrvmKH6Z4LTwj/vnbjMi4P9+2ogyGVO8lPq3y3kL/3MMl3h77iskHzaYTnUbTLkjnsDLp+4j6kwQ==@kvack.org X-Gm-Message-State: AOJu0YzfogStkWgyz1zhIhZjnqmf8WaQ7fshtdMnHIDbOUm4f2IYl2GX oLOnZn65m+UQZDcto069RFQSblo44mhQtkNOUwLAXWNvBPlTezLCpVhUVxBNfA== X-Gm-Gg: ASbGncuzekOzN2XjcaG/f4cSu/If7YNIHqoK6We7Hwg3h52HN45uceLl3wtoSFg3w0a ItDduEsGyT2Zg2a2Ro01eDuJksSPLYZfUthSvNnDy66/J0w3a5z2TvucDS8JyCRM1T5MQKRL54N hZC9QHwui/4HT0XahDU+OSBCm7mIgoisVjvWssTPvN8KXj/x2UvBvcO48ZdsbH4u7kG+p9mgabs k47ze/oRFNce8sQStcL2cWH/CbefpUNVP7tqPfF4KxzNBfy4tHzboJ0r9VoDhD8A+Gx70JLI8Bn 2FmOPBW7CdiHYgLI3Q== X-Google-Smtp-Source: AGHT+IEQRw5PJmq7wTBgXFBNQOsAEHuqWdKMzAKbQj8udw0upyNAtfwplObq30KxfZI8V98xY/jwVA== X-Received: by 2002:a05:6a00:22d3:b0:730:8e97:bd76 with SMTP id d2e1a72fcca58-7322c591b87mr2706438b3a.9.1739342007145; Tue, 11 Feb 2025 22:33:27 -0800 (PST) Received: from localhost ([2401:fa00:8f:203:69f5:6852:451e:8142]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-730851fa25bsm5556237b3a.180.2025.02.11.22.33.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 Feb 2025 22:33:26 -0800 (PST) From: Sergey Senozhatsky To: Andrew Morton Cc: Yosry Ahmed , Kairui Song , Minchan Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: [PATCH v5 17/18] zram: do not leak page on writeback_store error path Date: Wed, 12 Feb 2025 15:27:15 +0900 Message-ID: <20250212063153.179231-18-senozhatsky@chromium.org> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog In-Reply-To: <20250212063153.179231-1-senozhatsky@chromium.org> References: <20250212063153.179231-1-senozhatsky@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 411F640006 X-Stat-Signature: 7fs5nkqtceojzsaez1biagmn3bcwtah5 X-HE-Tag: 1739342008-176834 X-HE-Meta: U2FsdGVkX1+NZjt5O4tGuOzwAPxNB+6KrYpjOTyQZuNh0bDd3IkAeUnw7o8tUhR8Uuw28p68+MttFRI8OvckijKmIUkS1SheL5deQV9EPNxpNgx/sJXtAarlXxrXhvxxIRuOBFSqwLHCke/oEiFXLIqdIfwLwTTKhlSb5MZiCmpHQW66CEuXowKOlDc2lbEg2AENtTNypyzU6mCU2777IPHWJkVp3eLPpTzq/2lKGLRtBA482PdlhMi++Gu2E6Gw8WdVgiv0sKJZKdUUsISPOFQefyLv7ubhyRvcXi1pVvM0fckU/R8Kt+nkbDxX04X9903sYQ/HKTkTyNDLCnFHH9+fKD5DKrWX7BorJRKCjr3GKTSj8Cag61S5qfuiXG2BJPLgYLESmvNsUpnX22ox28sDK+6POD4Ro7ixM6wd/X10Zmpf8Jm2GiE4OPzbNLAaS+TcT6TdvER7pMZoQdUs8aksaj+f1vpwNhcOgjgRYxEUP3ewZY2TjkFTTVTFNVFX9tba6t2h6iYEviJa2pyOdZ86Y6KC2EHjjnc8LLSi4sSQ5YnqezJIkWW4VBYtApDntGsHXsp+Oxb8m4tUaat9lhZKs2gfza/ofE3U5EkEmq74A8kjUyQGphzmCgH8BS9JgZwh8JoRU8e9hDAPAz/JnYD4gWkoNu1Kup5BkmykcAXl0BcIMV15DBbnEs3ypPFGIvwaxpKeQdXuPQkQOEjDuwVnQZ0ys+NRGGxkn6JqAouqpuENTD5GGCCXAFJ5kIqIrxWZVRpNIMLlc9lKSi2zpDd+93JUdutGPOgNPm9ruPXcgMAjyY3oaaQtmHlvqXBWTdylv0/Qbdki26SSYqhRv3gULRbPAuVlSvfUasCuRJrkFV6gufSyjBzre0/NlYLAt6xpY172wyw8FVMa39b/7KHCQQNzcquBRsPXPVZDGRgLfgNAy+80e0yYUFnaqmBSeUzwi/TtMmcOUVplwNg FelgR+1P w1Mr1H2rLYU9wcm3PGdSXh5pQ73M8t9rn+9jIT4UuLPWca+ST04Wnz1yyi0LPjshLB+43pkoteT75ySROlIaVhLe7/IT9PwsWBnaDhqIEv17KvfTyoxjZwwNhECVQWo57nTIFCLVLVEskE0N7gWCAgaQn6xd6pJXXtA0efjsPNbB6S1o4fsg+7YrcQ5IoP2rLLZw1Badx1q0QMcGszfHwE4vUBbipTWLvDjBPTUa90hVGY/weO3/T65nIH4UpUi42BjucabEeW7KvUK90BatnTYTAWC0NE5Vcsw0DHrE4sYU1+eOgt5mr9KKTYflILcjBBIPk1+nzA3EJsX5SCuvwNp/MDMLXBb/KO5sCG+3w9VpI1+w= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Ensure the page used for local object data is freed on error out path. Fixes: 330edc2bc059 (zram: rework writeback target selection strategy) Signed-off-by: Sergey Senozhatsky --- drivers/block/zram/zram_drv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index f4644c29f74e..10239aea5ce0 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -787,7 +787,7 @@ static ssize_t writeback_store(struct device *dev, unsigned long index = 0; struct bio bio; struct bio_vec bio_vec; - struct page *page; + struct page *page = NULL; ssize_t ret = len; int mode, err; unsigned long blk_idx = 0; @@ -929,8 +929,10 @@ static ssize_t writeback_store(struct device *dev, if (blk_idx) free_block_bdev(zram, blk_idx); - __free_page(page); + release_init_lock: + if (page) + __free_page(page); release_pp_ctl(zram, ctl); atomic_set(&zram->pp_in_progress, 0); up_read(&zram->init_lock); -- 2.48.1.502.g6dc24dfdaf-goog