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 28A85CD4F59 for ; Thu, 5 Sep 2024 08:23:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9B84B6B011C; Thu, 5 Sep 2024 04:23:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9672D6B011D; Thu, 5 Sep 2024 04:23:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 809326B011E; Thu, 5 Sep 2024 04:23:57 -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 5B2A96B011C for ; Thu, 5 Sep 2024 04:23:57 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EDF0B12183F for ; Thu, 5 Sep 2024 08:23:56 +0000 (UTC) X-FDA: 82529996472.12.EC4F2BE Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com [209.85.210.49]) by imf30.hostedemail.com (Postfix) with ESMTP id 2AC8880011 for ; Thu, 5 Sep 2024 08:23:54 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Ce01aziI; spf=pass (imf30.hostedemail.com: domain of amir73il@gmail.com designates 209.85.210.49 as permitted sender) smtp.mailfrom=amir73il@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725524506; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=chdOXpxl19grJ0lyYlh2nBdFQ3cbblx2XVMM1r+6Sk0=; b=EksGX2iZRKNf+bntfi4eaDSPNpf0KI1MXM5DN9wUwG9H4p05MnObHJmnNXomkHKRcsyZAT NTiDYKgfgwS5EuG93SfK4mEP1FyT4J2WU3Z/CESaXD155D829QmHcY80cPejRUxH+5FyOa wK9gpIwFwl3WudB3K9OqIlJYJZpLmuM= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Ce01aziI; spf=pass (imf30.hostedemail.com: domain of amir73il@gmail.com designates 209.85.210.49 as permitted sender) smtp.mailfrom=amir73il@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725524506; a=rsa-sha256; cv=none; b=GBPPKlTDdwcdFAt2GsxImEJ2ku5ERVu76TBiBz/n3OI3paA+mDYXtK2PG5gE+fx8ufNnMp 2QiiN5RY5VCALTlDcMbB+6OXZxFquci2s51J5LZFfKnOEjjiaWf6vM5R4EKbYBWUSexyaV rcXw9fbCEUBtTDiF6xLkp8PqkMIdpck= Received: by mail-ot1-f49.google.com with SMTP id 46e09a7af769-70f6118f1b5so392174a34.0 for ; Thu, 05 Sep 2024 01:23:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725524634; x=1726129434; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=chdOXpxl19grJ0lyYlh2nBdFQ3cbblx2XVMM1r+6Sk0=; b=Ce01aziIPMyDdNC4NEtOTDPsTIaUFqcYKxtSOqKwnVDYIhfSVVx0JSMcHwwRVoZWs1 KkTJg6twLhtIwUoLnn0CCr1lHMS+vCTyIGS6j87TbsfRMWZETICZ5XWJFvIgTF8qwC/B OLZk8NDI3fQvtLinMJ3svbisPrq7mqQ3EF6tarnovpiQSQIocZHDcxu6Cq0eC1IRG/XV nwSkrxyKj8Xf6UR9EfT4EVN+daDWpLeZaHXH9w+VVWXQnRqmll0cKuePJel8EPCdMxDm lXIiJhgxQL476KVBKnijBq571lDh5U5SwrHbnIoPgwa6aT9gUn4FuQb64K+gZo6UoeCs wXcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725524634; x=1726129434; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=chdOXpxl19grJ0lyYlh2nBdFQ3cbblx2XVMM1r+6Sk0=; b=CN33+dghdsrKa0QDO9GeD43kcpPviXs0wO1+jCpU43LVivDRb74NpUOwt8TO0k3TTb OyAgff89m1BA+Trg3P38VWpC1WMw3fksKD9GOiP0ESdIsW0TWy5Wzx5qMIWVLCpsjl+G 2MXMeU5yx8+3WdwLYVeJGn+iToxibbuoiB3NcEU7N1zveSs8h0VITnR6mxADj2BtASf0 NnKf42hJT6Lk7k148DO11hbJ8NnFwCJbUzWqI/uZMoFrkHJ/AwGNnRevuRpYwCqHny2L XCpPeIJshc2M87obsHNaOs9h5/CGm8e/NNGeagEpUcfiSNdKmIwSQ7Lj40I0u7rpXHGV zSZg== X-Forwarded-Encrypted: i=1; AJvYcCUYs6weYuiIGzdvO1xWRhReOHKTTg9Z/n5rclRxBdb54K4RPIY1E8cITfxU4tiXApAUAUixY0Lphg==@kvack.org X-Gm-Message-State: AOJu0YyThcJ8LxX93GMI6dwvaD/g5WMtAOFCp28jNrWedad7Hvvedfwg bCRZkXW/whbiTpXrWJYm8NQo8K3o3KPxQMLGD/dE3sOB9PzNs6TezF5AGzN+Cg4EgxBvnoaED3D 0W2kpFkIoK2Bu+Giw3KY2z3ZSsrA= X-Google-Smtp-Source: AGHT+IE6p7wq/aGZc71KmWg1q+RkZP/2KfOy+tFjCt8EugCjNDM0MIPDzBeTnbCvcWLRpy4UVsXFGx3EjMXkydC/8RI= X-Received: by 2002:a05:6830:90e:b0:710:adbb:ff33 with SMTP id 46e09a7af769-710af69eae6mr7229761a34.10.1725524633873; Thu, 05 Sep 2024 01:23:53 -0700 (PDT) MIME-Version: 1.0 References: <367fe83ae53839b1e88dc00b5b420035496d28ff.1725481503.git.josef@toxicpanda.com> In-Reply-To: <367fe83ae53839b1e88dc00b5b420035496d28ff.1725481503.git.josef@toxicpanda.com> From: Amir Goldstein Date: Thu, 5 Sep 2024 10:23:41 +0200 Message-ID: Subject: Re: [PATCH v5 17/18] btrfs: disable defrag on pre-content watched files To: Josef Bacik Cc: kernel-team@fb.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, brauner@kernel.org, linux-xfs@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2AC8880011 X-Stat-Signature: 6x1f6tncojndnguhg14wfdqffq9nox64 X-Rspam-User: X-HE-Tag: 1725524634-445471 X-HE-Meta: U2FsdGVkX18sEl5GdpJfXbucsMeEi5i35rgK30PEaxv6GIhnbBXSbXl8hVCVjq1LlJ5Am7QgNn+eoind5202QgzKcbdhbsZKuIQeJmNHK9M/oudBzUGN5FFeWb0YnT2v+yQV+8L6McpLcZMTXisue+i7w55+2ditdiXvQtfZh9u+BeCRzxaIO8iyd0gyszxeI8qUK7IAv3sfaIpaVqpOcW7nyBrUKhguVGvm+3yjawVNqorIZRBaRMafyhH56WohlasXzL1zQTKPVJknOYQaUL9lqrkZzaYm/e3FQ2qiD2zEZQIw2Yxmek/h+z5Pwpl3sH+fgjypAvsiSLU8BinpKR/stZT21Z1JpYY0VrzlGhB1NquLIhuuQaCTed+tBrqR2Y9IMbzt9T81UVz8vb+iYGKL3ajeNRT6Pec6RrEDmYLGvT9H5ylZD5WOawd+rTZ6EVM7n+nZGJmmeCqnnVRC9RRX+rcucQCyWBJJ3qjO66BcoVIWrAu3e13ndoyyHgxgH0TobRL8jMc7ET1n+ijaS3DmqbPFahQgYzwjRVyk1N5NWn4JumY++Oqf7Igm9YWfCUB52ePMLWoFi+m7k/CooqPPRkWuaN3FNs5hQ+vgcGIXa7k1tSr+ZPz4JPwWA/Miw361TvFX+GkFoBjVx+ybeqGJ6y9e0Y2cWr5eqQ3lrIoXUJUxyhT0KnrGdOVgDUlAWmdGqRCf3uYyzG9mFaCYKXHpZnbPr/IcY8fL+GIjuxAXraUBTeg1BFSVTXwE6MTxJVF/Gb0W2d8f2+knbIO6pXAh8jUPDwY2F4r873Qmqy8QTbCTxDVViuVIzN6+/YplsA//eFBVzgoQyyaoLkZXh7MOpvF5MJdlQ+o/piX/ZYH1p+sbzs277sm350UFJZoZOpBXiG3TlURv9jCWS82N4qyI5nw4+O9tGawleCjOkmWeeYvD57+ywVQkekRWMIFVLFX6+XWv5T11NlfYZJs hdh8iyth KroeGwyEm2/1V2NoX4kU3Hoou08YNEKU2BO3Z4yVbvCI58n3amEge9lI/IZvxTsmAmCr0/FJ0gvrsGT2Tk1qfU+RmcBIBmTcXfUJhzbkbXPErzkWS4+itUOMyXMHjSXkgl6+yQvIxph1hjLyk/vjrYlwL/LgjvYoF7xm2G5nAYkD6afb9+gBP6cdObDGewBiJaUApYzzFgUqryI6YbwYv+bJYqyS3Llsmkp+yobCeRs6btGGpoVqpozsTjRrJvvAMPu7J7ObCS69s37rAbQa2xMhN+FEiqyKn8/H2+oyAFM1cjTqTBmzCpbTVKOD2PaT/rP/n2l98H1dSdx1F5sHqRSv36qGMvJa0WTWc 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 Wed, Sep 4, 2024 at 10:29=E2=80=AFPM Josef Bacik = wrote: > > We queue up inodes to be defrag'ed asynchronously, which means we do not > have their original file for readahead. This means that the code to > skip readahead on pre-content watched files will not run, and we could > potentially read in empty pages. > > Handle this corner case by disabling defrag on files that are currently > being watched for pre-content events. IIUC, you are disabling the *start* of async defrag. What happens if defrag has already started and then a pre-content watch is set up? Do we care about this corner of a corner case? Thanks, Amir. > > Signed-off-by: Josef Bacik > --- > fs/btrfs/ioctl.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c > index e0a664b8a46a..529f7416814f 100644 > --- a/fs/btrfs/ioctl.c > +++ b/fs/btrfs/ioctl.c > @@ -2640,6 +2640,15 @@ static int btrfs_ioctl_defrag(struct file *file, v= oid __user *argp) > goto out; > } > > + /* > + * Don't allow defrag on pre-content watched files, as it= could > + * populate the page cache with 0's via readahead. > + */ > + if (fsnotify_file_has_pre_content_watches(file)) { > + ret =3D -EINVAL; > + goto out; > + } > + > if (argp) { > if (copy_from_user(&range, argp, sizeof(range))) = { > ret =3D -EFAULT; > -- > 2.43.0 >