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 8BDC3C77B73 for ; Mon, 8 May 2023 13:56:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B1EE06B0071; Mon, 8 May 2023 09:56:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ACF416B0074; Mon, 8 May 2023 09:56:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 997D36B0078; Mon, 8 May 2023 09:56:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 87C616B0071 for ; Mon, 8 May 2023 09:56:31 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 413BE1C7022 for ; Mon, 8 May 2023 13:56:31 +0000 (UTC) X-FDA: 80767237782.13.48F53CC Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) by imf23.hostedemail.com (Postfix) with ESMTP id 58E73140004 for ; Mon, 8 May 2023 13:56:29 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b="IM/Li4tQ"; spf=pass (imf23.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.128.50 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683554189; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=19DXl8Cwep38RZYqA5V880Y84eA06vdWD+RdS89kIwI=; b=Le0baPKXyXolMpSq4KbSwVOKj9STCCnaJn0PdPSWU62ikhY6ahqj2FASTWG4zdzCQhXq5v Bpmj3lN8eSA/ahDv/Uf0K4sVONxqZnuaV8zgVzUSUELKjNEdF2i0wtndVptstvQ47m9jOK Q9GmMu4ZgA3uEZXUzg+y99rDlaFoY1c= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b="IM/Li4tQ"; spf=pass (imf23.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.128.50 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683554189; a=rsa-sha256; cv=none; b=lmYZgy98gvkhkqTmayD6/qH31IuD09HFjWwSzJwc5bRVHM2x7IE2cYF9wZA+RpxTtDo2rM k4kYgn4I0CjAQTska9qZ/bq1hlQPsEkJNtFcApD7s9HyGj8bSebsqpsphMiJLVLC47j2zG khBphh6RzTyxAttFRKcJsRxiLyaXySQ= Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-3f417ea5252so14381095e9.0 for ; Mon, 08 May 2023 06:56:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1683554188; x=1686146188; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=19DXl8Cwep38RZYqA5V880Y84eA06vdWD+RdS89kIwI=; b=IM/Li4tQnctEvBZh4oCQjtD2S9HXII5srZDmexgQ9NoiUkuflTBSCScJ45Davd4Fip 8xPJSKjPcZgfPGtTn5k9vYIuoXLki8ka/RmskSFmCqkXEpIoE/ZQxMzXNfvkQV0iVK+B PSVrmE6Jb6FKpy45HvEloo7Ot4O9wAP6nJ0NGTOoHNdzxt2GouD4hb32d/fyT/60venS SJzkFTf6CDA5i0tzASHBQeERoAW+ZTXUGXDURhH0D1ogVO/0yTd2OWJ6B6mHhkAxk+po KAyALZDE8kh4nq+uFzAPRbkU3NOoxUesaFWgOZz5oNmKu6mOIZ7mrQEPr63AqgfcxgLv yDrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683554188; x=1686146188; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=19DXl8Cwep38RZYqA5V880Y84eA06vdWD+RdS89kIwI=; b=IaQHTwoDejoUM9e5qO5YLZaiuDxCHeo6JW32FQa1BTPWTmsMigH2Ew5C4//4D2VK9K fchhTdhgPl2plNX2D8OSvI7Qqw2OOZZMXNAkiY3yIxuw9jV0PJQUnqHFjPhu0nVp/HQ/ /SlpELUS1uuwLdYznMzdh2SE+8P4KSCnwdge2/HoDap6x4C5NruoPOli/Kz3jW2FXXiE 5lyq0qW4GcIQIEVJkcU/JwrNZOk2yjlYGYlOYol3mRdmxtxWeTOy8JWEgYv12qRHnSuP zyrS9XTE+bmuzS5BhMFYkB4F/QFIhwKbmi3qhqICuYpnIYmQGq3hvQadziFHpW+IjlDF Wamg== X-Gm-Message-State: AC+VfDzxb9rEM3uO03deQXqsqufSc/7/4d/25CZMSp/B/viYuXJq7+/U e+CMxUQZ4+7UFqtFzQdxO5Qydw== X-Google-Smtp-Source: ACHHUZ5S+Sjuq/JaIdy19cG3DkzAGZ/DgPbwOzlGd4hs3OiK6fImSIKlZtG8kQghbUgkcfcfS66nxA== X-Received: by 2002:a05:600c:218:b0:3f4:28fd:83e0 with SMTP id 24-20020a05600c021800b003f428fd83e0mr653771wmi.31.1683554187831; Mon, 08 May 2023 06:56:27 -0700 (PDT) Received: from localhost ([102.36.222.112]) by smtp.gmail.com with ESMTPSA id z24-20020a1cf418000000b003f3e50eb606sm16741700wma.13.2023.05.08.06.56.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 May 2023 06:56:25 -0700 (PDT) Date: Mon, 8 May 2023 16:56:20 +0300 From: Dan Carpenter To: Andrew Morton Cc: Linus Torvalds , "Matthew Wilcox (Oracle)" , Josef Bacik , Johannes Weiner , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, syzbot+48011b86c8ea329af1b9@syzkaller.appspotmail.com, Christoph Hellwig Subject: Re: [PATCH] filemap: Handle error return from __filemap_get_folio() Message-ID: <7bd22265-f46c-4347-a856-eecd1429dcce@kili.mountain> References: <20230506160415.2992089-1-willy@infradead.org> <20230506104122.e9ab27f59fd3d8294cb1356d@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230506104122.e9ab27f59fd3d8294cb1356d@linux-foundation.org> X-Stat-Signature: 9wna6qdpwzk3wmi79ie4jgkr7iqbh569 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 58E73140004 X-Rspam-User: X-HE-Tag: 1683554189-465331 X-HE-Meta: U2FsdGVkX1/ao758FrEM7gawlxN81/Cp1RxBbAlndyf7tMhY1MhZx3Y7fZEj/K/Jr/s7/2h3s0Y9k7N4zGh/fnr2Wss5IRuKsw6dxLd5pG0/yjVJAKTbixpSgs801wtd7OnF6mGlMqNALIDQcHiEdzVSkghpu5Kr1Id39IjWon7pQgix3GULNXGcMAwCd/PsBcFNR7Sane2zPFVrNygRiqOw5P5Avd4wwbrLbGU4+gxmzsl8DWEzPf7Ti1/tp5in0NhCkyUJz6TBTy7P0m9rf+TCuSVALblyS3hjWxn5ktrvcggHfNwQswZbUREY8FvLWqrn8gWxjWsVzUGw9RIYgDOKmUwaVjVs3SAwx6GnB4VJGnSfImZsWX7+xfHUN0AeB0+KbfsOkEd+GNXX/hfIBpHZrrqV4ClNiFhY/TlIdoiZWhqRMBkRFM/l3VJGNAQV1WqDgn01HlpnP9JOJSzJE/pvB+kxONKvNtgCmMY3qvVcmZ+pNia8/d3ANBVr+Q2m60ivVehmCFLDwF2yhKTsx8vETIptYTLQ4LRPF0eLmTI2Ghq41vYQ85Pwtz+tm6YBm7etsKYzWwaydEtnLXBVX6osKWH1y74pfVQFwvFKF7R8OfdjepbjQkiRtqKYBYNpaQ7aTScrwbul+GRWgwVSxscwOPjF072oyON8ioWHPRoYIjMhgfSVNvh2CwlSW5pY96ndL4yNvvUcOQg8emTUJoFntxqF2qNdjvJvM6LbWISffN7vT3JWMyzquG2WzLBJTVOsx7/cVtebgarx9fD7O2yBVZTo3xru1J2BwpysJpy9lK+1qQjDxHBYbTXBX2nxf8GFd2y4M/NdApv1wMc22LkBLEOA0VAhOAVvwBiDS8u6LAVlImKV6ytX5dOf4+vmk5jJyuY/lYjuBRXB5R1We9TiHYQDwH+i6yLZBTXjdjL/BzxE+YeW2jBLT1tRyKDddZ7m5PHX4bJdlaRrmvQ KcA92/UL yAp2aKGL7yzU0IF+7CcyCjk9278l+/WUuboOq5lFVkKFwhE7ixSq+LfLmXwf+sINPI35Im9bX7ZwMJGBMzaf0dfPEUq7I37UnCVzEib5oBMo93tgMxaVnd/i4aOL4H1cx5jaUHdl7f78ZuWZu/QkwEN5RVONvDA4BW5z7RDonA1E0pbpkk7aqcXMgWOcPpTMrUpx+P8R99Jog9GVIVOCQeyf5YuFxjwUxFUfysT106RkDwWgwkraO7pOQYYzWYCjPVwwoyd8hHrZL9Kqublt8WWhu9LO+9aQGauHBa8wTwq9h5wFK8XRi7UjxK6hnU2dVXmKVuzs1XrojP85hBCHjkdlHUfaLIg2NuRkCQ9y8UiC8JbikM9x6EP3pKZbzghmvV3xXcDse1c1g7P39p7w2wqgdVVhfZKd/qXInOCI51tzbV0ekdp+XCiMBCFgJ4dOO93Q2 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: On Sat, May 06, 2023 at 10:41:22AM -0700, Andrew Morton wrote: > --- a/fs/afs/dir_edit.c~afs-fix-the-afs_dir_get_folio-return-value > +++ a/fs/afs/dir_edit.c > @@ -115,11 +115,12 @@ static struct folio *afs_dir_get_folio(s > folio = __filemap_get_folio(mapping, index, > FGP_LOCK | FGP_ACCESSED | FGP_CREAT, > mapping->gfp_mask); > - if (IS_ERR(folio)) > + if (IS_ERR(folio)) { > clear_bit(AFS_VNODE_DIR_VALID, &vnode->flags); > - else if (folio && !folio_test_private(folio)) > + return NULL; > + } > + if (!folio_test_private(folio)) > folio_attach_private(folio, (void *)1); > - > return folio; > } This one is quite tricky for Smatch. I mentioned earlier that the existing Smatch check for error pointer dereferences has some stupid stuff going on. I've replaced some of the stupid and I'll testing it tonight. 1) There is an existing check which complains if you have "if (p) " where p can be an error pointer, but not NULL. If I revert the fix, I get the correct warning now. fs/afs/dir_edit.c:242 afs_edit_dir_add() warn: 'folio0' is an error pointer or valid *NEW* 2) There is an existing check for dereferencing error pointers. However, I don't think kmap_local_folio() actually dereferences the folio. The folio_nr_pages() function does, but depending on the .config, it's kind of complicated and buried inside a READ_ONCE(). I've improved the Smatch code for this but I don't have a solution yet. 3) I've created a new warning which generally complains about passing error pointers. Obviously there are functions where that's normal, like passing error pointers to IS_ERR() and dev_err_probe(). It may or may not be useful. I'll look at the warnings tomorrow. fs/afs/dir_edit.c:265 afs_edit_dir_add() warn: passing error pointer 'folio0' to folio_nr_pages() regards, dan carpenter