Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp111926pxk; Sat, 29 Aug 2020 18:33:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyEin/IruW55ilYgSjrd4fWVdTCHmlEHcrmblierhPiVslUvnePpr/iw1EwVpW84BYxU90E X-Received: by 2002:aa7:de8f:: with SMTP id j15mr5399972edv.135.1598751181644; Sat, 29 Aug 2020 18:33:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598751181; cv=none; d=google.com; s=arc-20160816; b=Z6DkzN4JkwtpB0snVN2u+YZLV4M0ZXT3blHQnCjPIpMS+m96PkUT0P2NnCROum+Y5B 5ufNbLW5RUG6u2UFPn/ypMfb+A5oZzF213othZr2RMMpMV1z7HznHoPBqyns55clQVC6 VQs2cyLtValbY/zwsy4+oo4hpYYYgL3HhY0kQE9GiUWfFLFddvZKebxmTN+tG4Ln9E6S ajfLZNwKyDIUsAp9WsvJkeAsDNiR2hC9iZMQul7wS+1Hq5jNvBAdhlFvpyBq9vLIebXx 16rycPF3Yghq3v3WFJ2Dj7uz2VBMdnrKTnVK3ajoi+n3pRxyIGyli4Bh0KI72jUCS/Fa ewog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=oTXPJKxAg5XxTQVL81YppTbJbKKdp2qoMjgryaZThzc=; b=mjePFrN7MNHX1yGNpXoeI2UUNTxoDh+wIHTFw+vbwhON78I8+pEwVGHGRE2yg4kC0+ ed3JTqE2fhyc6zoTeE/rDWoq/sRljQZjOYwdBcOHc8Q8huzi55SCpHwK8JK36rPfW4r8 zH+m4T72sZ2vfkRqDYPuLdeXM+l6doYb7sbWYcqq/HDJtazHE6mfpqvycPVnShgrASKo 35yO0MbZEgYM6mdPqpeAyRTUq8tNqNfYsQQkklMlqVIxM8usWB4637Dzvid9gitLtJYt YEyv2OaXTFFQ2Kum1EeVq5R6pZJ00YX5hov+dg6e4LP/wR2E05DakbJDEFW6/NvhoXwh ghlQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=snIHPNIt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q12si2797233eju.680.2020.08.29.18.32.37; Sat, 29 Aug 2020 18:33:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=snIHPNIt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728567AbgH3BbY (ORCPT + 99 others); Sat, 29 Aug 2020 21:31:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728246AbgH3BbW (ORCPT ); Sat, 29 Aug 2020 21:31:22 -0400 Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D370C061573 for ; Sat, 29 Aug 2020 18:31:22 -0700 (PDT) Received: by mail-qt1-x843.google.com with SMTP id e7so2419672qtj.11 for ; Sat, 29 Aug 2020 18:31:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=from:to:cc:subject:date:message-id; bh=oTXPJKxAg5XxTQVL81YppTbJbKKdp2qoMjgryaZThzc=; b=snIHPNItiSzMiNbfMvHkwKcuLJe8cG++Oz2ae8qgnrH1ekSHdofCVjHTa1VxsLoeYQ kY0fJQw17HrhhvbknPyQU/+X2QJodjqBIL7rjSl0u+38tvX6s4n2Wla57G/6YcU1Q4YG yY4w0S5FAIv+SbABcIvu/T4WSScBA/64RzO6UC6leqD4skku42yNm9Tf5qF4sXguMP9D dJtoK1aXxn5zgfJIREsXq9lAZ7QcP/JT+MFLzFUBdHDorjQyScUo8DvQuM/mAj2K6Sel s4KotxmA3eplfUQ2FecY/AX3Pma+7DhPYL2MATUNCQDeCb4Ax5fxktpf6dLOQiHay9Yp NJlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=oTXPJKxAg5XxTQVL81YppTbJbKKdp2qoMjgryaZThzc=; b=Qqb+qcdQv4MNhKxb6vynIDqV3K+GRACn/fC1AAhg6I/2jYSTMNNvOnqmEbmV+dzcur TeckAXGQIoZ4beV6whzc7E1x09IU4F5hslx7LvmRM6GP/kKi31wwzyKSQmarhjw6LB1O GJKIQb6pxlYBs4djo6e2mU/Ln8MgbK/ip1oeK8BObq4KPBj4MzxkruNZ22UCAvuB5FSz CbKhp5tltBk+3Vrzr1+cWGQwza23F66HnFXYOqku/zrqAiDSqqTSmEJ48RWbVvVLWslA gW3o33CMsl5ooef7AzdF1V9hAcW3OQ67d02uTlj650p4oCvAm48g8RrUpwujr2mPN+D5 neRQ== X-Gm-Message-State: AOAM531esQA77/w/Hasb4d8ie9ScCyHg/lijCAZ9yHuzSaE2sZ3vFTtU +boicG+v3ffXCz0O7TXd7po0Ww== X-Received: by 2002:ac8:2baa:: with SMTP id m39mr7636519qtm.204.1598751080998; Sat, 29 Aug 2020 18:31:20 -0700 (PDT) Received: from localhost.localdomain.com (pool-71-184-117-43.bstnma.fios.verizon.net. [71.184.117.43]) by smtp.gmail.com with ESMTPSA id e21sm4017553qkl.88.2020.08.29.18.31.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Aug 2020 18:31:20 -0700 (PDT) From: Qian Cai To: darrick.wong@oracle.com Cc: hch@infradead.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Qian Cai Subject: [PATCH] iomap: fix WARN_ON_ONCE() from unprivileged users Date: Sat, 29 Aug 2020 21:30:57 -0400 Message-Id: <20200830013057.14664-1-cai@lca.pw> X-Mailer: git-send-email 2.18.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is trivial to trigger a WARN_ON_ONCE(1) in iomap_dio_actor() by unprivileged users which would taint the kernel, or worse - panic if panic_on_warn or panic_on_taint is set. Hence, just convert it to pr_warn_ratelimited() to let users know their workloads are racing. Thanks Dave Chinner for the initial analysis of the racing reproducers. Signed-off-by: Qian Cai --- fs/iomap/direct-io.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c index c1aafb2ab990..6a6b4bc13269 100644 --- a/fs/iomap/direct-io.c +++ b/fs/iomap/direct-io.c @@ -389,7 +389,14 @@ iomap_dio_actor(struct inode *inode, loff_t pos, loff_t length, case IOMAP_INLINE: return iomap_dio_inline_actor(inode, pos, length, dio, iomap); default: - WARN_ON_ONCE(1); + /* + * DIO is not serialised against mmap() access at all, and so + * if the page_mkwrite occurs between the writeback and the + * iomap_apply() call in the DIO path, then it will see the + * DELALLOC block that the page-mkwrite allocated. + */ + pr_warn_ratelimited("page_mkwrite() is racing with DIO read (iomap->type = %u).\n", + iomap->type); return -EIO; } } -- 2.18.4