From patchwork Mon Jan 1 16:57:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Overstreet X-Patchwork-Id: 184176 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:6f82:b0:100:9c79:88ff with SMTP id tb2csp4057142dyb; Mon, 1 Jan 2024 08:57:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IEqiLzrRrVYvujNi3IdJ0XmVhB5D3voj6AGsX6M55N83OzBZUAec1yuizltpPRcaBKPGqlW X-Received: by 2002:a05:6e02:16ce:b0:35f:a1c8:a6e1 with SMTP id 14-20020a056e0216ce00b0035fa1c8a6e1mr25673574ilx.58.1704128263322; Mon, 01 Jan 2024 08:57:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704128263; cv=none; d=google.com; s=arc-20160816; b=RSiUNH1PhNYnwe29xNxguqKyohMMfrPDjqWiRwWXEdkYrEDqyi2/jXPbXsesmyJ9EC 1qmzZy7OwZ524jXRXKQdWTGRTuiJxpABD8Ar9pJRdoo0V9jx2bHIxQOXLUMqQ7Fgo3S/ +AOjdPcRZOnHzh0JOWuXBEYTkCbU5vgIUw5BeKhqLETAEUeWDtwLN2Q4JJtvAsboIZcU 5Sel20ST4Rk+Y8Pcydla5e9nVv4Jtbl2bXPDLYSi2lOojEzMz7ks8Qk7WmiM1wNMeSpm NHP84recuaqwzANYvRrs8NwjXiryWJT2/qFPg/PyMYj4538lx3jeYs1OgxHcnTjNUqcw 3A8A== ARC-Message-Signature: i=1; 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=cmvErc4bVmNIdfsEyQKE+VfNG+TsormXZQZVPalSIsg=; fh=aznqSYAhe5NzYgYLW/V7xbfSEyFesCegLqxoNj8hWd8=; b=f5oIQdE8kYIpSgkg2pfolKLASfWpUl10MtAncx2dVX7x1xCSBuH9xUBBaViZbgYS89 wG0QQJjO1mNGkwsi6sMa96gsbIH1ApSxNSU0I5NasQZg5m2mdKUeU+e1Phk6iQxBGdhE 0n+ytD0qQL26H5VZTx2rDzgBawkPzk4Fusv1E1IqAo8Fbi3LAmY7C6ZNzy7gvpiPflC0 3JHW5vSusbtopbo1qBw45ZBz2vV9Fqld9QAN8CFJyRr0ifUmuF3Aa1W1X235vtb71FNz TnYmLll4R4oEa4LA8JVTaM5BJDK4mBJx2hJDgiO225l43f762aK0vYAquL219+aieqMB DXpg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=jQ4sr2ta; spf=pass (google.com: domain of linux-kernel+bounces-13910-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13910-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id s2-20020a17090302c200b001d460b8af01si11823240plk.289.2024.01.01.08.57.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jan 2024 08:57:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-13910-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=jQ4sr2ta; spf=pass (google.com: domain of linux-kernel+bounces-13910-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13910-ouuuleilei=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 sy.mirrors.kernel.org (Postfix) with ESMTPS id 039D4B20F4A for ; Mon, 1 Jan 2024 16:57:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 05F018F6A; Mon, 1 Jan 2024 16:57:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="jQ4sr2ta" X-Original-To: linux-kernel@vger.kernel.org Received: from out-179.mta1.migadu.com (out-179.mta1.migadu.com [95.215.58.179]) (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 889F363C7; Mon, 1 Jan 2024 16:57:11 +0000 (UTC) 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: Mon, 1 Jan 2024 11:57:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1704128229; 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=cmvErc4bVmNIdfsEyQKE+VfNG+TsormXZQZVPalSIsg=; b=jQ4sr2taSFWLfiAzp6+1xFur/KSny+47PWTKSD0SXJpvPF03vIYVvqEWHjXDPtLa3Q543V QtYFU9wqDpOOlqBavtBvK0sa+9rjrlScnIdv4FAwywbcc5G61m96ZGVH++8myaFqAE/9e2 qkkWUIkVEbvjZ/+ptgMYJCNRl4dcH9M= 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 new years fixes for 6.7 Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline X-Migadu-Flow: FLOW_OUT X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1786907997685812827 X-GMAIL-MSGID: 1786907997685812827 Hi Linus, some more fixes for you, and some compatibility work so that 6.7 will be able to handle the disk space accounting rewrite when it rolls out. Happy new year! The following changes since commit 453f5db0619e2ad64076aab16ff5a00e0f7c53a2: Merge tag 'trace-v6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace (2023-12-30 11:37:35 -0800) are available in the Git repository at: https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-01-01 for you to fetch changes up to 0d72ab35a925d66b044cb62b709e53141c3f0143: bcachefs: make RO snapshots actually RO (2024-01-01 11:47:07 -0500) ---------------------------------------------------------------- More bcachefs bugfixes for 6.7, and forwards compatibility work: - fix for a nasty extents + snapshot interaction, reported when reflink of a snapshotted file wouldn't complete but turned out to be a more general bug - fix for an invalid free in dio write path when iov vector was longer than our inline vecotr - fix for a buffer overflow in the nocow write path - BCH_REPLICAS_MAX doesn't actually limit the number of pointers in an extent when cached pointers are included - RO snapshots are actually RO now - And, a new superblock section to avoid future breakage when the disk space acounting rewrite rolls out: the new superblock section describes versions that need work to downgrade, where the work required is a list of recovery passes and errors to silently fix. ---------------------------------------------------------------- Kent Overstreet (13): bcachefs: Fix extents iteration + snapshots interaction bcachefs: fix invalid free in dio write path bcachefs: fix setting version_upgrade_complete bcachefs: Factor out darray resize slowpath bcachefs: Switch darray to kvmalloc() bcachefs: DARRAY_PREALLOCATED() bcachefs: fix buffer overflow in nocow write path bcachefs: move BCH_SB_ERRS() to sb-errors_types.h bcachefs: prt_bitflags_vector() bcachefs: Add persistent identifiers for recovery passes bcachefs: bch_sb.recovery_passes_required bcachefs: bch_sb_field_downgrade bcachefs: make RO snapshots actually RO fs/bcachefs/Makefile | 2 + fs/bcachefs/acl.c | 3 +- fs/bcachefs/bcachefs.h | 1 + fs/bcachefs/bcachefs_format.h | 51 ++++++--- fs/bcachefs/btree_iter.c | 35 ++++-- fs/bcachefs/darray.c | 24 ++++ fs/bcachefs/darray.h | 48 +++++--- fs/bcachefs/errcode.h | 3 + fs/bcachefs/error.c | 3 + fs/bcachefs/fs-io-direct.c | 13 +-- fs/bcachefs/fs-ioctl.c | 12 +- fs/bcachefs/fs.c | 38 ++++++- fs/bcachefs/io_write.c | 82 +++++++------- fs/bcachefs/printbuf.c | 22 ++++ fs/bcachefs/printbuf.h | 2 + fs/bcachefs/recovery.c | 137 +++++++++++++++++++---- fs/bcachefs/recovery.h | 3 + fs/bcachefs/recovery_types.h | 86 ++++++++------ fs/bcachefs/sb-clean.c | 2 - fs/bcachefs/sb-downgrade.c | 188 +++++++++++++++++++++++++++++++ fs/bcachefs/sb-downgrade.h | 10 ++ fs/bcachefs/sb-errors.c | 6 +- fs/bcachefs/sb-errors.h | 253 +----------------------------------------- fs/bcachefs/sb-errors_types.h | 253 ++++++++++++++++++++++++++++++++++++++++++ fs/bcachefs/subvolume.c | 18 +++ fs/bcachefs/subvolume.h | 3 + fs/bcachefs/super-io.c | 86 +++++++++++++- fs/bcachefs/super-io.h | 12 +- fs/bcachefs/util.h | 1 + fs/bcachefs/xattr.c | 3 +- 30 files changed, 977 insertions(+), 423 deletions(-) create mode 100644 fs/bcachefs/darray.c create mode 100644 fs/bcachefs/sb-downgrade.c create mode 100644 fs/bcachefs/sb-downgrade.h