Received: by 2002:ab2:1347:0:b0:1f4:ac9d:b246 with SMTP id g7csp146609lqg; Wed, 10 Apr 2024 19:54:49 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWcKMe5BrHp6td4hUl9zp5irLLdLfcurmJXz+Pm01tTumVWZ92FvPKx735S7cQ739MuqRDkiVcV4HKx1APSf5pPEknOJ2ELvqC32zTnoA== X-Google-Smtp-Source: AGHT+IE6nzkfDk1t38quf9yQSR76WWIMgNEGku15KqoiiLHn2zVUldHjRGdLabhJnXfV4kheHNvI X-Received: by 2002:a05:6a20:12c7:b0:1a7:a1e6:70cb with SMTP id v7-20020a056a2012c700b001a7a1e670cbmr6000622pzg.8.1712804089027; Wed, 10 Apr 2024 19:54:49 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712804089; cv=pass; d=google.com; s=arc-20160816; b=GSXILNAyZL2fRgD2DR29mx8jySgxkmDBYw1czUTX13qn/lhLoS5I+aVLpEJXnQ4M37 1Ujrsl5RAbT6ddoNOc3sy2Pfsvepqa2LksJ25c84vyq15TrUyFcU0q0vPf41JoFqOMqe uS7fkc8onPUKFOhjBYyVIsCiWmM3/JrH7iEkLnM17qeklCN4qMgLVfYxn+F6bw77kwb9 udcSy7SKIbkkqMNEUlfNxQGlM9mhWSb27nOblEDwAoj4BSSmrv5HCnUgJYlvszBXY+Ry WZfuIA6jIWp1KYmECnUJDx32h674IJI3bJXYCVl94L2iEZReqysLnpTX8mQMEOkebs7w S36w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-disposition:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:message-id:subject:cc:to:from:dkim-signature :date; bh=JaNPtXr0mm+bEAmXMp73DrXvXkWEkPC0u2C6L0pm1Wo=; fh=aznqSYAhe5NzYgYLW/V7xbfSEyFesCegLqxoNj8hWd8=; b=FqiPVu8zJmQb7lpdWsW8GCAfKdgvPx4UnW1JdMm29U0E5TxmfI7zEj9uAx8GRY7ghF FKsw0YsLOpPllllydE0871ecG9nFCCCQEHZNMtOSVAXNAkp+3/kZtJEET3+MNsbpTPSh IJ6iDb/c5tFCcYkeqpJr5EJNIKutpXPSPSoxjjYIh/H329sEdP/y6wGYH2lw/pJfcwp5 AJBm+r0eN4NUMpGCxBAi3soPfWauYENLc1YlP+Tt7T4c7JRz9kF0JTvc3VBSNdKrr/ub SF32kyyFUxwWeknHFkzuB3ljiytH1WWDa8AnFMFNsv8C1updNUuy9qGZD6NLvvWuJJ52 3tSg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=eSnqlqEp; arc=pass (i=1 spf=pass spfdomain=linux.dev dkim=pass dkdomain=linux.dev dmarc=pass fromdomain=linux.dev); spf=pass (google.com: domain of linux-kernel+bounces-139668-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-139668-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id me12-20020a170902fc4c00b001e510d549casi426146plb.294.2024.04.10.19.54.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Apr 2024 19:54:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-139668-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=eSnqlqEp; arc=pass (i=1 spf=pass spfdomain=linux.dev dkim=pass dkdomain=linux.dev dmarc=pass fromdomain=linux.dev); spf=pass (google.com: domain of linux-kernel+bounces-139668-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-139668-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 5048E286A3E for ; Thu, 11 Apr 2024 02:54:48 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 59D2113B586; Thu, 11 Apr 2024 02:54:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="eSnqlqEp" Received: from out-174.mta0.migadu.com (out-174.mta0.migadu.com [91.218.175.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 314CD626DD for ; Thu, 11 Apr 2024 02:54:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712804078; cv=none; b=e++VHruemMvvhMY7nrTyZU8kr0P6a1rsPzpRPZ53yuo9UwT0D89frmxHBjNYjvRyf1WjlFa4jooXw2SV1+MaNk1AUZ8WHlcjoGdaFi6rHoOLWyXrydFOAQR1vQyYCdyJrgm+iel0XhbdBMTwBGBO2QDXEmXAjccSsYXKMRqW2u0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712804078; c=relaxed/simple; bh=uXsuN4wUwAIfsSO+WFyJIu8o15W+PXoOTYaGu0BkidI=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=SuZJBoIO1wCy62HsBVuQUuj+GDANKll0wGmykVcQ5HqRNva75ETNNXnPL6J4zDTMjm0uR7fYZB89KV1rQm8kn3DC9uVys4XMEFri6Kx2jA8m6Aq5UcpLMbrdfDyuoO/JH/1B5En/Fo9FPzy1g1BV1fhSognYVDBTQNOj0sXpcGo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=eSnqlqEp; arc=none smtp.client-ip=91.218.175.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Date: Wed, 10 Apr 2024 22:54:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1712804070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=JaNPtXr0mm+bEAmXMp73DrXvXkWEkPC0u2C6L0pm1Wo=; b=eSnqlqEpD9xe76X0eJ1LfdeRuszqbVEsG9vjQ3zGn3C1As9+jZX2I97VBot7qnL8z/Y61y wjvwuV2nb8E6PphsSV4B8D3fdEAGh1nOF+gPuzf0knxdK7RL4/WLUfFCSfkXCc4Qc0kRLe /eOm3FszzAZ38qX5TVr4SPZTxg5Vlnc= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Kent Overstreet To: Linus Torvalds Cc: linux-bcachefs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [GIT PULL] bcachefs fixes for rc4 Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Migadu-Flow: FLOW_OUT Hi Linus, another batch of fixes for you... And on the subject of the rc3 announcement - yes, let's please dial back the excitement _just_ a bit, it's seemed a bit unhinged at times; bcachefs is still marked as experimental for a reason. You shouldn't be running bcachefs just yet if you'll be sad if things are offline for a bit (where a bit has been for a few people a week or two); IOW, this is still very much for early adopters and people who are willing and able to help test and debug. Worst case scenario you're not going to lose data, as long as you can be patient, but I'm still debugging issues where we get stuck in recovery (= filesystem offline). That said - things are coming together quite nicely. Will have more to say at LSF... ---------------------------------------------------------------- The following changes since commit 09d4c2acbf4c864fef0f520bbcba256c9a19102e: bcachefs: reconstruct_inode() (2024-04-03 14:46:51 -0400) are available in the Git repository at: https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-04-10 for you to fetch changes up to 1189bdda6c991cbf9342d84410042dd5f3a792e0: bcachefs: Fix __bch2_btree_and_journal_iter_init_node_iter() (2024-04-10 22:28:36 -0400) ---------------------------------------------------------------- bcachefs fixes for v6.9-rc4 Notable user impacting bugs - On multi device filesystems, recovery was looping in btree_trans_too_many_iters(). This checks if a transaction has touched too many btree paths (because of iteration over many keys), and isuses a restart to drop unneeded paths. But it's now possible for some paths to exceed the previous limit without iteration in the interior btree update path, since the transaction commit will do alloc updates for every old and new btree node, and during journal replay we don't use the btree write buffer for locking reasons and thus those updates use btree paths when they wouldn't normally. - Fix a corner case in rebalance when moving extents on a durability=0 device. This wouldn't be hit when a device was formatted with durability=0 since in that case we'll only use it as a write through cache (only cached extents will live on it), but durability can now be changed on an existing device. - bch2_get_acl() could rarely forget to handle a transaction restart; this manifested as the occasional missing acl that came back after dropping caches. - Fix a major performance regression on high iops multithreaded write workloads (only since 6.9-rc1); a previous fix for a deadlock in the interior btree update path to check the journal watermark introduced a dependency on the state of btree write buffer flushing that we didn't want. - Assorted other repair paths and recovery fixes. ---------------------------------------------------------------- Bagas Sanjaya (2): Documentation: filesystems: Add bcachefs toctree MAINTAINERS: Add entry for bcachefs documentation Dan Carpenter (1): bcachefs: fix ! vs ~ typo in __clear_bit_le64() Hongbo Li (1): bcachefs: fix the count of nr_freed_pcpu after changing bc->freed_nonpcpu list Kent Overstreet (19): bcachefs: Make snapshot_is_ancestor() safe bcachefs: Bump limit in btree_trans_too_many_iters() bcachefs: Move btree_updates to debugfs bcachefs: Further improve btree_update_to_text() bcachefs: Print shutdown journal sequence number bcachefs: Fix rebalance from durability=0 device bcachefs: fix rand_delete unit test bcachefs: Fix BCH_IOCTL_FSCK_OFFLINE for encrypted filesystems bcachefs: Disable errors=panic for BCH_IOCTL_FSCK_OFFLINE bcachefs: JOURNAL_SPACE_LOW bcachefs: Fix gap buffer bug in bch2_journal_key_insert_take() bcachefs: fix bch2_get_acl() transaction restart handling bcachefs: fix eytzinger0_find_gt() bcachefs: Fix check_topology() when using node scan bcachefs: Don't scan for btree nodes when we can reconstruct bcachefs: btree_node_scan: Respect member.data_allowed bcachefs: Fix a race in btree_update_nodes_written() bcachefs: Kill read lock dropping in bch2_btree_node_lock_write_nofail() bcachefs: Fix __bch2_btree_and_journal_iter_init_node_iter() Thomas Bertschinger (1): bcachefs: create debugfs dir for each btree Thorsten Blum (1): bcachefs: Rename struct field swap to prevent macro naming collision Documentation/filesystems/bcachefs/index.rst | 11 +++ Documentation/filesystems/index.rst | 1 + MAINTAINERS | 1 + fs/bcachefs/acl.c | 30 +++---- fs/bcachefs/bcachefs_format.h | 14 +++ fs/bcachefs/btree_gc.c | 13 ++- fs/bcachefs/btree_iter.h | 2 +- fs/bcachefs/btree_journal_iter.c | 67 ++++++++++---- fs/bcachefs/btree_key_cache.c | 4 +- fs/bcachefs/btree_locking.c | 28 +----- fs/bcachefs/btree_node_scan.c | 11 ++- fs/bcachefs/btree_types.h | 14 +++ fs/bcachefs/btree_update_interior.c | 128 +++++++++++++-------------- fs/bcachefs/btree_update_interior.h | 3 +- fs/bcachefs/chardev.c | 98 +++++++++++--------- fs/bcachefs/data_update.c | 17 +++- fs/bcachefs/debug.c | 75 ++++++++++++---- fs/bcachefs/eytzinger.c | 8 +- fs/bcachefs/eytzinger.h | 26 ++++-- fs/bcachefs/journal_reclaim.c | 2 + fs/bcachefs/journal_types.h | 1 + fs/bcachefs/recovery.c | 14 --- fs/bcachefs/snapshot.c | 19 ++-- fs/bcachefs/super.c | 5 ++ fs/bcachefs/sysfs.c | 6 -- fs/bcachefs/tests.c | 2 +- fs/bcachefs/util.h | 10 ++- 27 files changed, 372 insertions(+), 238 deletions(-) create mode 100644 Documentation/filesystems/bcachefs/index.rst