From patchwork Sat Mar 15 00:42:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14017652 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BB4F2E338C for ; Sat, 15 Mar 2025 00:42:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999364; cv=none; b=ioR99E2ZGSi3RWHjdtXMCTuSjBw6+PoWDMnrwTaHa+jqcHYAQhUD/lAagEr+sLgCMVIO2AuXDxGzkYcfEuYTr1kPaJNeYDAAFkhqOuWZuk4rqOClUwyASgFI4iat5yB+uUqxDkpAavgYc1oxsOVxPD1obbKJg21aDkaDMXQBRT0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999364; c=relaxed/simple; bh=AMo0teFZQPOplYGmrfNa7zZ761A95Mtq+7ue7N0AHMA=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b34VRYOg+0Dk1LMSB0GtE5ZdVNfNQXC4bu/u5jh6wFLnwqy5HXsy0U2uGcYSdieOJ99TmpUE9OJobEZu+SGnoi3jwP3lYFk4FoTjJQiSfxdTvHVJZxX3HyJuAslJW8X2qVU0r7l9Ww11B2MPUO2dtDTrCqhdQcdZbiM6i9KyWOc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=exsn3qxw; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=exsn3qxw; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="exsn3qxw"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="exsn3qxw" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 39E4D1F388 for ; Sat, 15 Mar 2025 00:42:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999360; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EJGybrNsRbJ4jjB1ezrpKDXfpOKpkjP/4VV4kQqCIMk=; b=exsn3qxwy2Vo3T5TkjHhyOUTTTm9rAKFi8/ZBIu5qIXKqxKsWviOOVtVefOGsT1CJy3DAR gtW/JeG/RotGUGdcrEnvOvMqfyIoow8cRQhMYEPlbpyWgmKGafAj8ys4XNrWLOaL0Lsmed tXnUNVNp1ig/1YG1942+0xY07InnNM0= Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=exsn3qxw DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999360; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EJGybrNsRbJ4jjB1ezrpKDXfpOKpkjP/4VV4kQqCIMk=; b=exsn3qxwy2Vo3T5TkjHhyOUTTTm9rAKFi8/ZBIu5qIXKqxKsWviOOVtVefOGsT1CJy3DAR gtW/JeG/RotGUGdcrEnvOvMqfyIoow8cRQhMYEPlbpyWgmKGafAj8ys4XNrWLOaL0Lsmed tXnUNVNp1ig/1YG1942+0xY07InnNM0= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 31F0613797 for ; Sat, 15 Mar 2025 00:42:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id uP/DM/7M1GegXAAAD6G6ig (envelope-from ) for ; Sat, 15 Mar 2025 00:42:38 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 1/7] btrfs: send: remove the again label inside put_file_data() Date: Sat, 15 Mar 2025 11:12:12 +1030 Message-ID: <8ccc8a146410fc48525cb5709c1521adf577838e.1741999217.git.wqu@suse.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Rspamd-Queue-Id: 39E4D1F388 X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.com:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; ASN(0.00)[asn:25478, ipnet:::/0, country:RU]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,suse.com:mid] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Score: -3.01 X-Spam-Flag: NO The again label is here to retry to get the folio for the current index. When triggering that label, there is no increasement on the iterator. So it can be replaced by a simple "continue" and remove the again label. Signed-off-by: Qu Wenruo --- fs/btrfs/send.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index 0c8c58c4f29b..43c29295f477 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -5280,7 +5280,6 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len) unsigned cur_len = min_t(unsigned, len, PAGE_SIZE - pg_offset); -again: folio = filemap_lock_folio(mapping, index); if (IS_ERR(folio)) { page_cache_sync_readahead(mapping, @@ -5316,7 +5315,7 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len) if (folio->mapping != mapping) { folio_unlock(folio); folio_put(folio); - goto again; + continue; } } From patchwork Sat Mar 15 00:42:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14017653 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF0B3D2FF for ; Sat, 15 Mar 2025 00:42:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999370; cv=none; b=he+qZGTo4cCVHufqbyHOwb2HNE/yQBMeTCBJQw7uUSIgwDih7G150Atbny3XumbM1JyQOCDJiS9XAiqH5VEfYFhiJkOfRZ2qFNyDOqF9rTH39c21u/VbB75dIexCuMZruOgrybS//NJXpktp9StmgliiILlh3M2J27cS0w0ay24= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999370; c=relaxed/simple; bh=KwAeuuDDeURhc1uduX+W4X6LwLA+hS0JrfZDqW/I6BE=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Cde0e4NSPnQUbDtLWyq6eahPb7DTL9C0Uo+R8RR+wKRu0hz6EMHdeioDfm+YFaZyoY8tuo4jLE+0ZIUHjEz0mWzhNoBlKU+3y96s0CBs2xX1YukReJfhN9AUQrdgmFNvL4+EnCPaN/5NAmkHTv6w1fWoI5zZmrm+jIips8cx+zA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=TVwXepd9; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=TVwXepd9; arc=none smtp.client-ip=195.135.223.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="TVwXepd9"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="TVwXepd9" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E0D9421196 for ; Sat, 15 Mar 2025 00:42:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999361; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mE9jrU/uLZfaGt8hL7BPeV+adQSNsYm65uG0ApJgfQM=; b=TVwXepd9usJLOLsAfa9PYSfw5P/y9hHPC2cnS+iJL6wKdH3i6vYYdW0UyrhMbVPETngnXB +2Gl6H3i/ue85Wjhs8SHMYO6uAOcwomlTdBdzvX/JPqrmX+TqQrGk44DznvwZf+EPsk3us 4EaDwJYqJooaYk7JxU8OHfwbYkEW0mg= Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=TVwXepd9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999361; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mE9jrU/uLZfaGt8hL7BPeV+adQSNsYm65uG0ApJgfQM=; b=TVwXepd9usJLOLsAfa9PYSfw5P/y9hHPC2cnS+iJL6wKdH3i6vYYdW0UyrhMbVPETngnXB +2Gl6H3i/ue85Wjhs8SHMYO6uAOcwomlTdBdzvX/JPqrmX+TqQrGk44DznvwZf+EPsk3us 4EaDwJYqJooaYk7JxU8OHfwbYkEW0mg= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id D876013797 for ; Sat, 15 Mar 2025 00:42:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id YJkDIQDN1GegXAAAD6G6ig (envelope-from ) for ; Sat, 15 Mar 2025 00:42:40 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 2/7] btrfs: send: prepare put_file_data() for larger data folios Date: Sat, 15 Mar 2025 11:12:13 +1030 Message-ID: <3bcdc0894eae02c7a6f0b43e8b94c0518eaf6b9a.1741999217.git.wqu@suse.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Rspamd-Queue-Id: E0D9421196 X-Spam-Score: -3.01 X-Rspamd-Action: no action X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.com:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; ASN(0.00)[asn:25478, ipnet:::/0, country:RU]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,suse.com:email] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Flag: NO X-Spam-Level: Currently the function put_file_data() can only accept page sized folio. However the function itself is not that complex, it's just copying data from filemap folio into send buffer. So make it support larger data folios by: - Change the loop to use file offset instead of page index - Calculate @pg_offset and @cur_len after getting the folio - Remove the "WARN_ON(folio_order(folio));" line Signed-off-by: Qu Wenruo --- fs/btrfs/send.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index 43c29295f477..4df07dfe326f 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -5263,10 +5263,9 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len) { struct btrfs_root *root = sctx->send_root; struct btrfs_fs_info *fs_info = root->fs_info; - struct folio *folio; - pgoff_t index = offset >> PAGE_SHIFT; - pgoff_t last_index; - unsigned pg_offset = offset_in_page(offset); + u64 cur = offset; + const u64 end = offset + len; + const pgoff_t last_index = (end - 1) >> PAGE_SHIFT; struct address_space *mapping = sctx->cur_inode->i_mapping; int ret; @@ -5274,11 +5273,11 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len) if (ret) return ret; - last_index = (offset + len - 1) >> PAGE_SHIFT; - - while (index <= last_index) { - unsigned cur_len = min_t(unsigned, len, - PAGE_SIZE - pg_offset); + while (cur < end) { + pgoff_t index = cur >> PAGE_SHIFT; + unsigned int cur_len; + unsigned int pg_offset; + struct folio *folio; folio = filemap_lock_folio(mapping, index); if (IS_ERR(folio)) { @@ -5292,8 +5291,9 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len) break; } } - - WARN_ON(folio_order(folio)); + pg_offset = offset_in_folio(folio, cur); + cur_len = min_t(unsigned int, end - cur, + folio_size(folio) - pg_offset); if (folio_test_readahead(folio)) page_cache_async_readahead(mapping, &sctx->ra, NULL, folio, @@ -5323,9 +5323,7 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len) pg_offset, cur_len); folio_unlock(folio); folio_put(folio); - index++; - pg_offset = 0; - len -= cur_len; + cur += cur_len; sctx->send_size += cur_len; } From patchwork Sat Mar 15 00:42:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14017654 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D93CBDF78 for ; Sat, 15 Mar 2025 00:42:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999370; cv=none; b=uGLvczejWYb9B/uWDKg8jZOOpKe+a+asWRxupfiXmpsoKPO8VA3TXBtJoSFW1/HDuf7rSN6XH2E90jF2rzotP3qJ+Jd/QXAevFAnUZJjqMvIL+9hwIv7yhp4/6+rysAXDUxpPEaVTQCwZExXwWJGrJMQCORP6szsekaSS3CSeVM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999370; c=relaxed/simple; bh=MDy/Pp03UtLhAWBjaBc5fJGJbdvNyJ8jCsBK73+iLZA=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gy1zLKzx1KLdRtU3UiX13UJnOuBxEdOqIStrxE8+CWPfN7k+MP5XvuGTtbT4LKq1CciLWFXomxtn3m+r7d6jGVgt5rqOtdztBs6lvv11oALBKLTtGNgPNSLG1I+UZNkCOfuv5pnkzhdqMSbo8TAXaoxuE9WFYvtCRywqDRQPq3Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=EZIU3prO; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=EZIU3prO; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="EZIU3prO"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="EZIU3prO" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 8F8BF1F38E for ; Sat, 15 Mar 2025 00:42:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999363; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QenZUiEmnYmgQb+ZCfW+2P3Xg2hrNWxKJRKqwvriTXI=; b=EZIU3prOqsc2Q8740TCeItsjIxYTbpl1u452I0ASCAhP9QTXLgxIu1VXMfw3z90eZ/WYuX Yp3LreGJOOXvD6w5FtX8/LpL1prSCtSkUA/yWR7CGq1uwY3rz28zEZyBGuHGdJKKLSz2nz my1q48U5lft0tPVh2XYBB0w02rp0lBE= Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=EZIU3prO DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999363; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QenZUiEmnYmgQb+ZCfW+2P3Xg2hrNWxKJRKqwvriTXI=; b=EZIU3prOqsc2Q8740TCeItsjIxYTbpl1u452I0ASCAhP9QTXLgxIu1VXMfw3z90eZ/WYuX Yp3LreGJOOXvD6w5FtX8/LpL1prSCtSkUA/yWR7CGq1uwY3rz28zEZyBGuHGdJKKLSz2nz my1q48U5lft0tPVh2XYBB0w02rp0lBE= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 88E2113797 for ; Sat, 15 Mar 2025 00:42:42 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 0InADQLN1GegXAAAD6G6ig (envelope-from ) for ; Sat, 15 Mar 2025 00:42:42 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 3/7] btrfs: prepare btrfs_page_mkwrite() for larger data folios Date: Sat, 15 Mar 2025 11:12:14 +1030 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Rspamd-Queue-Id: 8F8BF1F38E X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.com:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; ASN(0.00)[asn:25478, ipnet:::/0, country:RU]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,suse.com:mid] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Score: -3.01 X-Spam-Flag: NO The function btrfs_page_mkwrite() has an explicit ASSERT() checking the folio order. To make it support larger data folios, we need to: - Remove the ASSERT(folio_order(folio) == 0) - Use folio_contains() to check if the folio covers the last page Otherwise the code is already supporting larger folios well. Signed-off-by: Qu Wenruo --- fs/btrfs/file.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 262a707d8990..4213807982d6 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1791,8 +1791,6 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf) u64 page_end; u64 end; - ASSERT(folio_order(folio) == 0); - reserved_space = fsize; sb_start_pagefault(inode->i_sb); @@ -1857,7 +1855,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf) goto again; } - if (folio->index == ((size - 1) >> PAGE_SHIFT)) { + if (folio_contains(folio, (size - 1) >> PAGE_SHIFT)) { reserved_space = round_up(size - page_start, fs_info->sectorsize); if (reserved_space < fsize) { end = page_start + reserved_space - 1; From patchwork Sat Mar 15 00:42:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14017655 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A71B16426 for ; Sat, 15 Mar 2025 00:42:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999376; cv=none; b=mwZyCnod95+aDGFTwFrikx+JwbBEewj1n9/c05gko0PZIrBoGlW+8k2+HxAZii/bTg846eOTlRbx8kezCAL0t72OcmcdhyIhMbTN7jhqM2eGNduYKS1EaqHV9IjvIznN9ElKXnO8Z3wQ2RLgIr64uj2xzvVOVLJtGrIKVP63B7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999376; c=relaxed/simple; bh=/xzmG5K76lfmL5ajvWSgzrrRon+QcYkuwFUJpQk94xk=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pTWrFXxaZuS8dFzqoe6YY/DsoZICm/8SSMMcKWyek6c2rdfGs1VjYEx/Lao1cgyN2/D9tlk5YVNlpgVI0D9S8r4rRkFQF9PrnyxWmEQ3+Gdx4RrT0Z1YzXD8NmTfrM2mBuxAjsE8tyY2Up1Mz3nVD37zI86U9KFdR0TiruCMoIg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=C4Z+S7kC; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=C4Z+S7kC; arc=none smtp.client-ip=195.135.223.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="C4Z+S7kC"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="C4Z+S7kC" Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 4C97F21174 for ; Sat, 15 Mar 2025 00:42:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999365; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5uLHrKI2W0qNotF19LaH0Esuj3bfTzC1d82Ak37dtTg=; b=C4Z+S7kCgKMTc7EVwu69RPjTrwip4yjjFMrGjIsj714ij90x/YouQNQ2twwLD18Lwc4EoV br1Ybhcel4SqSvJLfZ2JB7l6Z2iahzCvmsleJimLHI0g6CQ67RoaREXc8lv1I4ieI3A3WL QtGFS8p96Hg6fiC+aLvC4XAQawictyE= Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999365; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5uLHrKI2W0qNotF19LaH0Esuj3bfTzC1d82Ak37dtTg=; b=C4Z+S7kCgKMTc7EVwu69RPjTrwip4yjjFMrGjIsj714ij90x/YouQNQ2twwLD18Lwc4EoV br1Ybhcel4SqSvJLfZ2JB7l6Z2iahzCvmsleJimLHI0g6CQ67RoaREXc8lv1I4ieI3A3WL QtGFS8p96Hg6fiC+aLvC4XAQawictyE= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 392A513797 for ; Sat, 15 Mar 2025 00:42:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id yHWWNQPN1GegXAAAD6G6ig (envelope-from ) for ; Sat, 15 Mar 2025 00:42:43 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 4/7] btrfs: prepare prepare_one_folio() for larger data folios Date: Sat, 15 Mar 2025 11:12:15 +1030 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; RCVD_TLS_ALL(0.00)[] X-Spam-Flag: NO X-Spam-Level: The only blockage is the ASSERT() rejecting larger folios, just remove it. Signed-off-by: Qu Wenruo --- fs/btrfs/file.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 4213807982d6..c2648858772a 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -875,8 +875,6 @@ static noinline int prepare_one_folio(struct inode *inode, struct folio **folio_ ret = PTR_ERR(folio); return ret; } - /* Only support page sized folio yet. */ - ASSERT(folio_order(folio) == 0); ret = set_folio_extent_mapped(folio); if (ret < 0) { folio_unlock(folio); From patchwork Sat Mar 15 00:42:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14017656 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E48917578 for ; Sat, 15 Mar 2025 00:42:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999377; cv=none; b=bdsIOeHsRNaFmeZaUEtTzbz+xHYaVT5yb7MnPVesAny7LZDvnp/P4UsCnXn7uwiRYMbRE5smGnq3RJE8mpMW3rsWhX7l566u5KTFXM/o/F+2cPRJV8ojfjt2Qr0FAZof+QjkUrIYko9CLyK0J1dIIPdh7KUHTqJResQmvxinjZo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999377; c=relaxed/simple; bh=mp7Hg6NTG1kBcAShqejDWAvWrektxAdwNKEVLqfJgn0=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AqAnXNWRseQdyPc9AKm0YfjJKpxpTQLixmVxV0u5Vf2Z+Vkc8csslmR6pz2y07j1JEvgxnJ5iKKomOcWwMSyOOEp46Bccso1VkS9rGuLu5Acuwlh92ioE2YarKJN8XxYsdipALjQOPs9BEYJxU9AmXerYILgcs86Ceo3gGXtsAk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=M2ijLi1L; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=M2ijLi1L; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="M2ijLi1L"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="M2ijLi1L" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 0F5251F388 for ; Sat, 15 Mar 2025 00:42:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999367; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Awe5QSBb8KdrfiIW4nThvXS249QD03t8AlI5GqNY4I4=; b=M2ijLi1LtwfbblzM+vnzwJ+GcRSisOxvVtsQUKS81ZQtw3P4CFbldASuPBskSLLwcSa70k 574xHlWQKCRRxyEkl37qoMW2uvPhRjGpJRQxZmW3f/LIgd9DeuP2gmgo5zGZXbkoXSjRlS rINaObdLpPThe1zwmkxUO9GCEmwkq/s= Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=M2ijLi1L DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999367; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Awe5QSBb8KdrfiIW4nThvXS249QD03t8AlI5GqNY4I4=; b=M2ijLi1LtwfbblzM+vnzwJ+GcRSisOxvVtsQUKS81ZQtw3P4CFbldASuPBskSLLwcSa70k 574xHlWQKCRRxyEkl37qoMW2uvPhRjGpJRQxZmW3f/LIgd9DeuP2gmgo5zGZXbkoXSjRlS rINaObdLpPThe1zwmkxUO9GCEmwkq/s= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id EBE6913797 for ; Sat, 15 Mar 2025 00:42:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id kKajJQXN1GegXAAAD6G6ig (envelope-from ) for ; Sat, 15 Mar 2025 00:42:45 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 5/7] btrfs: prepare end_bbio_data_write() for larger data folios Date: Sat, 15 Mar 2025 11:12:16 +1030 Message-ID: <776e2f7fa1fc03afb2e6785ea8436a23e21b9ea8.1741999217.git.wqu@suse.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Rspamd-Queue-Id: 0F5251F388 X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.com:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; ASN(0.00)[asn:25478, ipnet:::/0, country:RU]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,suse.com:mid] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Score: -3.01 X-Spam-Flag: NO The function is doing an ASSERT() checking the folio order, but all later functions are handling larger folios properly, thus we can safely remove that ASSERT(). Signed-off-by: Qu Wenruo --- fs/btrfs/extent_io.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 7db74a173b77..d5d4f9b06309 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -462,9 +462,6 @@ static void end_bbio_data_write(struct btrfs_bio *bbio) u64 start = folio_pos(folio) + fi.offset; u32 len = fi.length; - /* Only order 0 (single page) folios are allowed for data. */ - ASSERT(folio_order(folio) == 0); - /* Our read/write should always be sector aligned. */ if (!IS_ALIGNED(fi.offset, sectorsize)) btrfs_err(fs_info, From patchwork Sat Mar 15 00:42:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14017657 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 24A944A06 for ; Sat, 15 Mar 2025 00:43:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999383; cv=none; b=NTmBdrltoBMUzcjUI3h81NoWtYzD9EIo0bAQ7d5t45dHXHdv0qcJTmkXXArRu9KykyX8w813Smjp29xQFsdx7oPtrt937Ikxgjfmxf5UnaReX/gZ7hStq80Yv+yHVV2zjJe17QsH2HKwpPMa1xysWtfllLX73wHKE9Hx21PeMag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999383; c=relaxed/simple; bh=fV39FIZBHcLoysOcEHA/fNtbn1s1mlpDtFc3Eo+jfyo=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nars2wTIzZkDmNt0GmoKtzM44Qk+5QqEjg96eR8pttujs2+uFi4kbMp1gUr+o81Ns+jSG/8dBp3omEEP3zTa22nfEmT7+SF0n098cSsOJcCHjoCAAZoHqqyBFTaBkTH3Fss2ovZI9Th+dk0HKBm6QgwZrOhC60n3PCIR2JT1MqY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=Pol32xa/; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=Pol32xa/; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="Pol32xa/"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="Pol32xa/" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B06981F394 for ; Sat, 15 Mar 2025 00:42:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999368; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JC3ZrLumjXEUxKYQAcQV/R5RberFyv50JmwDwX9aZy8=; b=Pol32xa/V5Q2l+jfY2gv9uqw5Ra7DZy6dBWBZrmmU4NqeJEXqRktXGnAd/YnxzA7YKI/4w aFnoz+SVRx9qgdp397SYyYk/l7T1XdsVJZRghIk4xWURcRRSDGnEs/6/WwXmICZ3bnUQRC g3BwsrfQBopil8echyyolASPqRwQBtQ= Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b="Pol32xa/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999368; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JC3ZrLumjXEUxKYQAcQV/R5RberFyv50JmwDwX9aZy8=; b=Pol32xa/V5Q2l+jfY2gv9uqw5Ra7DZy6dBWBZrmmU4NqeJEXqRktXGnAd/YnxzA7YKI/4w aFnoz+SVRx9qgdp397SYyYk/l7T1XdsVJZRghIk4xWURcRRSDGnEs/6/WwXmICZ3bnUQRC g3BwsrfQBopil8echyyolASPqRwQBtQ= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A32AF13797 for ; Sat, 15 Mar 2025 00:42:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id iKEXFAfN1GegXAAAD6G6ig (envelope-from ) for ; Sat, 15 Mar 2025 00:42:47 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 6/7] btrfs: subpage: prepare for larger data folios Date: Sat, 15 Mar 2025 11:12:17 +1030 Message-ID: <94c775a6f4e3c6cbdc01925bef85579eff0e6ee7.1741999217.git.wqu@suse.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Rspamd-Queue-Id: B06981F394 X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.com:s=susede1]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.com:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; ASN(0.00)[asn:25478, ipnet:::/0, country:RU]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:dkim,suse.com:mid] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-Spam-Score: -3.01 X-Spam-Flag: NO The subpage handling code has two locations not supporting larger folios: - btrfs_attach_subpage() Which is doing a metadata specific ASSERT() check. But for the future larger data folios support, that check is too generic. Since it's metadata specific, only check the ASSERT() for metadata. - btrfs_subpage_assert() Just remove the "ASSERT(folio_order(folio) == 0)" check. Signed-off-by: Qu Wenruo --- fs/btrfs/subpage.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/fs/btrfs/subpage.c b/fs/btrfs/subpage.c index 834161f35a00..bf7fd50ab9ec 100644 --- a/fs/btrfs/subpage.c +++ b/fs/btrfs/subpage.c @@ -69,7 +69,8 @@ int btrfs_attach_subpage(const struct btrfs_fs_info *fs_info, struct btrfs_subpage *subpage; /* For metadata we don't support larger folio yet. */ - ASSERT(!folio_test_large(folio)); + if (type == BTRFS_SUBPAGE_METADATA) + ASSERT(!folio_test_large(folio)); /* * We have cases like a dummy extent buffer page, which is not mapped @@ -181,9 +182,6 @@ void btrfs_folio_dec_eb_refs(const struct btrfs_fs_info *fs_info, struct folio * static void btrfs_subpage_assert(const struct btrfs_fs_info *fs_info, struct folio *folio, u64 start, u32 len) { - /* For subpage support, the folio must be single page. */ - ASSERT(folio_order(folio) == 0); - /* Basic checks */ ASSERT(folio_test_private(folio) && folio_get_private(folio)); ASSERT(IS_ALIGNED(start, fs_info->sectorsize) && From patchwork Sat Mar 15 00:42:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14017658 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7A8A6AA7 for ; Sat, 15 Mar 2025 00:43:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999390; cv=none; b=UQjLn5Q8q600V1/1Sk1heyxz6lE2Wi2EcrbYwQSTmhH52Y6ex7Ad0UF0NsTieZtv7VD5hzZ5o4mT6nbKFU3Q/x1Dx3r4UvJR1WvMVxV7oD9IpqVYEwrR4MrXZ0MOcwDPKhxwy880HKYyxB86ntYtHQTxBtRuOzhJCkRA1kN7duw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741999390; c=relaxed/simple; bh=GEN3iJkWeDvE/KSQxPiVSF1LRJQphDfycxGUh2NOZUg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mc4g/aVDZoSMqCSQEolvTlxMNX+IJVOYXf4ybXI16WWd7msGHprGsItMaRusuGVVh4nZmuxcxYgrniedknA/nRa5pvI8Z0Y5XCRpkNEpdPoc+P6+HxbLCs/9nH/PGXkZF6IXtfqXjcw/kKCysbAEoLXEn4IP8cIx6mMRNamOwLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=qbXhHx74; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=qbXhHx74; arc=none smtp.client-ip=195.135.223.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="qbXhHx74"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="qbXhHx74" Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 6027D1F395 for ; Sat, 15 Mar 2025 00:42:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999370; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hjRDK+DEmvOJ6nnT06bW82e6DneaDQkEOgvkFEgxBIA=; b=qbXhHx7458YdHTwNAx+6RcyeeYj4Doc+kofn9DhP6fg+WpCcRLDWqt95uu6iG0WQFbouNF Fq1fJDqOroNFM9gwuYJkEQbDHZv0dxrmJp1o4+MzWdU0zMElVuK+PhdcvxlPO5+H4WQOz5 CAW1jgylr9UR7m8m5nTIp2+N3yhJHk4= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741999370; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hjRDK+DEmvOJ6nnT06bW82e6DneaDQkEOgvkFEgxBIA=; b=qbXhHx7458YdHTwNAx+6RcyeeYj4Doc+kofn9DhP6fg+WpCcRLDWqt95uu6iG0WQFbouNF Fq1fJDqOroNFM9gwuYJkEQbDHZv0dxrmJp1o4+MzWdU0zMElVuK+PhdcvxlPO5+H4WQOz5 CAW1jgylr9UR7m8m5nTIp2+N3yhJHk4= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 50B6713797 for ; Sat, 15 Mar 2025 00:42:48 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id IE6SOwjN1GegXAAAD6G6ig (envelope-from ) for ; Sat, 15 Mar 2025 00:42:48 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH v2 7/7] btrfs: zlib: prepare copy_data_into_buffer() for larger data folios Date: Sat, 15 Mar 2025 11:12:18 +1030 Message-ID: X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; RCVD_TLS_ALL(0.00)[] X-Spam-Flag: NO X-Spam-Level: The function itself is already taking larger folios into consideration, just remove the ASSERT(!folio_test_large()) line. Signed-off-by: Qu Wenruo --- fs/btrfs/zlib.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/btrfs/zlib.c b/fs/btrfs/zlib.c index 3a7d136f57b4..b32aa05b288e 100644 --- a/fs/btrfs/zlib.c +++ b/fs/btrfs/zlib.c @@ -120,8 +120,6 @@ static int copy_data_into_buffer(struct address_space *mapping, ret = btrfs_compress_filemap_get_folio(mapping, cur, &folio); if (ret < 0) return ret; - /* No larger folio support yet. */ - ASSERT(!folio_test_large(folio)); offset = offset_in_folio(folio, cur); copy_length = min(folio_size(folio) - offset,