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 9BFEFC35274 for ; Fri, 15 Dec 2023 15:01:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3A60A8D0132; Fri, 15 Dec 2023 10:01:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 354AC8D0121; Fri, 15 Dec 2023 10:01:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 243DC8D0132; Fri, 15 Dec 2023 10:01:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 136A18D0121 for ; Fri, 15 Dec 2023 10:01:57 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DE814160DA1 for ; Fri, 15 Dec 2023 15:01:56 +0000 (UTC) X-FDA: 81569367432.21.C6EBC9F Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf17.hostedemail.com (Postfix) with ESMTP id B29FB40065 for ; Fri, 15 Dec 2023 15:01:52 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QEP7jk7Q; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702652513; 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=fpNr8tLv7DaR3O7eSvBZDrzrhRmQRH0saU7oGWLT/Ng=; b=biih+DLR0oyuFnrYM6bIjtgl+jG67D0eLbKqUCbnFuL9Y0W9HYHYz2kWJgb/hgAyY7xWXQ XShCH2fN6QmY9vb4L036Ys5D4fy44AR7TcyOrgFM7qUy63AhtxnduGKUvSkpjhqWWo5ENe nwllUCqrEe8dO2HJk8oJIZq47clqcDk= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QEP7jk7Q; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702652513; a=rsa-sha256; cv=none; b=oN83kg/TL9JPVCuNYI20x0+PHAB2b9xYnbfHU8TyOh80cXJkndhiMS+cmH79vkcecO06Ad 6ymJaLvz6G7GN33nTxirxw1rKeeGYBWgdD2A6r3PuWiHisvXn9aAgbumWFXs2n6Bfw6yab xSfknPxWgOGe0vWDoRZCwVHVBB0s5s0= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=fpNr8tLv7DaR3O7eSvBZDrzrhRmQRH0saU7oGWLT/Ng=; b=QEP7jk7QKVzggKrwd8F8h78Y8i Xxq+GkDU4ZLXQka8SyG5MAc6oqRvmsXdnT3l6YfPtOzsakpYEMzl4/iV7V4icASVErZ82fn8xG82Q H7WPX35sxIEx+ESMNW3lj3J9A1v08xQ44JW4HOewQwkIlJr1oCxavk2JBTDqmq0JzOS3kk2l0EsuC YmvPhA8C0eMlPugu4A70uwIjwQ07tjkbuCUSfEC61c/9H4bdFe7wmHLdSKZm4dwdWFtizJHmXeA8U YfvrugFq3wI7xqhwlHp6b5WIkA6TyvCDDJ9cNIdgRU44UQUK6NVRpGE5LjSThBIP0wyQ5AHb29Uw8 JvSBWkRw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1rE9h0-000Yy1-IV; Fri, 15 Dec 2023 15:01:34 +0000 Date: Fri, 15 Dec 2023 15:01:34 +0000 From: Matthew Wilcox To: Baolin Wang Cc: akpm@linux-foundation.org, david@redhat.com, ying.huang@intel.com, ziy@nvidia.com, xuyu@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: migrate: fix getting incorrect page mapping during page migration Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: B29FB40065 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: qb8qxjj9k8i5djrgtp9xymzqoy3u7d1q X-HE-Tag: 1702652512-471014 X-HE-Meta: U2FsdGVkX19Q0/81flMERBDrYBfkSfsCMGerU53seJYhei7r824vRvKkhQ3n9fea/kJWg/DGOQPwnJeWqpugfKMY2UtXe6mf0lQU2aQYu5iUMQfFyTuOCYH/HDsL3y26/NnkuBIZMZUMnYGc7WHxVB1YiriodvhMTRMN8pKqTOvDIUNhXfT39sHR/R8cVTwap9FMOV+cXZZMQWF+fcBSn3Pl9Qv+ef+mGfoBXZ9e7bMcxu+p365vCKYqC+Pf9jJ8ULjTISf74K2PTIZvFLFjPsRKTm3BGsO6tGPi9mvQL6fu5MBrYW1WDgkzccZEM4cK8zdfH3IX5XKKJobcS+9Z5PoTiMxSql7XeQHhPUTW8M92o8tY4rrb4g86YV4+aIBwyLq9aKnByIZnpEki4DG07qHLJG5Mjo1Rc9l9DCY3UPsGoHdgbPyuxN/i0mgmhha5KYPLg+5oTnPWLLt8VY4xsFY34JuMczTAPMu1/jNdodpBZD/2ri8seScanZNqvN617kwhN55+9pvtdJq7eBNj77M1E6D+SiF74VjpCFwKEZV27uOUuAE8T3FcV35qeg5xyBjBrTD590HOcv2/Ffyz2melsS6HuIpeM2RQiDDmvyXw7Rc32PMJ+nItfCN3fRu51TP0dwmO98BFJYopIlkaJUHoq1tloYKQ0ggMfNUjVIXFJiJlYLrQxEch6aP+M4S2BZ5FE5KmjmgcvnIeYl+xIGdS2o4wNEdyqgcJEYGWByNzsjCLo8A3WM99uNHzWQhqb+FBn3/OW67nPlPIwPrffpKOEbZUrI+u9FMK0NsEpLCakOGMQ3cYtmUPu3tUD4D3ETm9MvbDDij80NrT3pkhzsrGzLUkbj7JibW2TFs0ugIIUJBgk3GebDZ8UxWBD7TOL2DmOSMcUYSFPY6RtiohkdZUaUVEYHc5vwbJs6AdHMgMEVtzz6ZnazNcxX7KrT/HV5DEDxoPJL9rBnjb4CI T7Jafdsz PW+HQU0YMNL3gKXhVwWgP/PN66KHLGs7jPOxP+yuuMSnDOV1GGtOGMKfBxCMQ/lRlpaLaoDgF69wv2AXJrdJlDVLvENr5yYBUY7BCZHcuNx3PRkcPj55pPhCeKKVAsZl00AUZAX5o5/vcpJk= 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: On Fri, Dec 15, 2023 at 02:51:43PM +0000, Matthew Wilcox wrote: > I'm not saying no to this fix, but dump_mapping() is supposed to be > resilient against this. Is the issue that 'dentry' is NULL, or is it > some field within dentry that is NULL? eg, would this fix your > case? Uh, dentry is an on-stack dentry. So obviously it's a pointer within it that's NULL. Maybe this, having stared at the implementation of %pd? +++ b/fs/inode.c @@ -588,7 +588,8 @@ void dump_mapping(const struct address_space *mapping) } dentry_ptr = container_of(dentry_first, struct dentry, d_u.d_alias); - if (get_kernel_nofault(dentry, dentry_ptr)) { + if (get_kernel_nofault(dentry, dentry_ptr) || + !dentry->d_parent || !dentry->d_name) { pr_warn("aops:%ps ino:%lx invalid dentry:%px\n", a_ops, ino, dentry_ptr); return;