From patchwork Thu Mar 13 04:20:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14014282 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 B74562B9A8 for ; Thu, 13 Mar 2025 04:21:17 +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=1741839679; cv=none; b=VgZQpXltjuh5qXOCibwSIRg0QOJUs501ejWz2TfPEDG6Ph5e0wAFVbsg8TyXGgfeMnt1+SzxFJNx17F6eDv36fkLZQDBrhdWGCsWlLg+BouoW0gkRMh8WuSPDt3BTvWD95dUY0bRiJRYnQDcIMU7jaXrzkweOs5YMWjg+up81iA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741839679; c=relaxed/simple; bh=WRtsT7xbXvJcuhozplsrE//2lZmfudzPux+r5N82oUM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GrUB6wGUIXSPEJSr3IkfeZCqkcwTezQMfd5aSh/x2umQ72I5VQ2CdlOApxpLgUYmkIXSdBu6I3Um9iCtU4c0GBjmBObLlzfk37B4ic5zw0AYcAVh3i9HClt3aHWO3I/1Rrmag6FKMRPRe1pFxC4JTKZZB4qfPcMSqF2WddKUY8U= 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=u9QXvtsf; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=u9QXvtsf; 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="u9QXvtsf"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="u9QXvtsf" 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 E78A92118F for ; Thu, 13 Mar 2025 04:21:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839668; 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=zoexVNuKJdevg89qearFpOJV+jILdlLudBwDcK1VE28=; b=u9QXvtsfHUZEv9YyuDwOIMYF0kXf+avCpzUJzGnE74JTH+ihRXVJ6i1FtoT2ufntPvl02s cXXy5/J56wYo6EGOENGYb1wOEyVPx1SJgCShTsK0nT9c8AkmwZ9l2pCFBpT8q2n4+uC5yx 4J7IAdhzKP069gxmBeN658ZeyejCBoM= Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839668; 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=zoexVNuKJdevg89qearFpOJV+jILdlLudBwDcK1VE28=; b=u9QXvtsfHUZEv9YyuDwOIMYF0kXf+avCpzUJzGnE74JTH+ihRXVJ6i1FtoT2ufntPvl02s cXXy5/J56wYo6EGOENGYb1wOEyVPx1SJgCShTsK0nT9c8AkmwZ9l2pCFBpT8q2n4+uC5yx 4J7IAdhzKP069gxmBeN658ZeyejCBoM= 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 2826113797 for ; Thu, 13 Mar 2025 04:21:07 +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 sH08NjNd0mcrYQAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 04:21:07 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 1/7] btrfs: send: remove the again label inside put_file_data() Date: Thu, 13 Mar 2025 14:50:43 +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-Level: 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)[imap1.dmz-prg2.suse.org:helo]; 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-Score: -2.80 X-Spam-Flag: NO The again label is not really necessary and can be replaced by a simple continue. 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 Thu Mar 13 04:20:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14014283 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 298EF2B9A8 for ; Thu, 13 Mar 2025 04:21:24 +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=1741839685; cv=none; b=hDKBphOJaYJny+agOH3z5Q7OI+rvQfqsOqcFrVCQJiUJo5gy3Eb9U4egtuwW88ZBURJvG5zyEPGYbvapunGJYTxifIRg5l5cAw/9oXG+UbQYUWWycqQudiYLWQLjIFPkaFjIs6A0og7992g2NIpJQIb55RvZrGEkx6SAvuXjPY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741839685; c=relaxed/simple; bh=KwAeuuDDeURhc1uduX+W4X6LwLA+hS0JrfZDqW/I6BE=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eDwKsSvgPxErAuOGCcGhnYW5qo65ar9Pn0cCHaxs7vpQsrdVK1++jsJkzmlnjhY6YPKRYkYSttcixxNAftD7q/yYaXMo3unaC9tzTEkH3FwSQl8hfZcxmlGDo2NSFeUzFr4vc8dDj9JDF9oydw5n0oPgYQZ4v6Ru6JyyovvdtXc= 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=okN9gfC0; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=okN9gfC0; 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="okN9gfC0"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="okN9gfC0" 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 3776721190 for ; Thu, 13 Mar 2025 04:21:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839670; 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=okN9gfC0GgfCG5kDKqPIum74WwOAvohzs15nOeGHYZT53XbGKJ4CPlLjgnZcNny14addiN PrzQ/o8Ezy9QseZTDuu7Z+5ddk2S3CThIE/YuO/gfx2+N1YpLHw/jwReAAi4PBwhTYu7+5 vDoa3jur5/Pwj+L8jQzjaFdQXF3H4BA= Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=okN9gfC0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839670; 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=okN9gfC0GgfCG5kDKqPIum74WwOAvohzs15nOeGHYZT53XbGKJ4CPlLjgnZcNny14addiN PrzQ/o8Ezy9QseZTDuu7Z+5ddk2S3CThIE/YuO/gfx2+N1YpLHw/jwReAAi4PBwhTYu7+5 vDoa3jur5/Pwj+L8jQzjaFdQXF3H4BA= 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 6B54513797 for ; Thu, 13 Mar 2025 04:21:09 +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 GCgKCzVd0mcrYQAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 04:21:09 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 2/7] btrfs: send: prepare put_file_data() for larger data folios Date: Thu, 13 Mar 2025 14:50:44 +1030 Message-ID: <75668be54f15f044d412fb946ed845345c8698bc.1741839616.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: 3776721190 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%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; 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)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.com:+] 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 Thu Mar 13 04:20:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14014285 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 C503D7DA6A for ; Thu, 13 Mar 2025 04:21:30 +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=1741839692; cv=none; b=cP6s4OC01+HReBXn0rer9KlfErFkknhzq2qwUnm8VsjvRqqLWGZeKqHwtXxmp/veYTGtxuUuqvqZ8JPm/XkhkesumHQdbmQuTtGp8X0Hz2O7uBFSt8FZqRH1J2xPorPf2BxcVeIOMDrMYD6iDdHejGu8xYdSKM9mQ1Gn+T14ID4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741839692; c=relaxed/simple; bh=MDy/Pp03UtLhAWBjaBc5fJGJbdvNyJ8jCsBK73+iLZA=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f5VWYzy3nkmvnpIp3AMIY+VuftDLDmU1q8IPtlOhXidMUjwph3HGKl0nIo2zjqEeYV3xB4Kt8yllcmBlebxfgRZNyOWTrTxhDFKbqSErh2ip4lP7o6dZMZYSqLVg4ktKhaQCYZtuzWhF7vVaV3SvJtDIf/FWJnNfEh8d9PsTZJw= 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=t7EMsGpY; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=t7EMsGpY; 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="t7EMsGpY"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="t7EMsGpY" 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 7A77421191 for ; Thu, 13 Mar 2025 04:21:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839671; 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=t7EMsGpYKs1I7Lb6PNVJHcXMwzFDLriuOWoli8trGzkPdQ9Pxv4cppWZNQoSwwi12LtekB lUeaAhfyQq2eptd+89y0LY8IKJs3VL3x1uCHngv7MlcQrsf+KWmrDH4w4FUdY1T3pbYtRQ /96kuEetcI+reNUZjvGO72sXIo88Yik= Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839671; 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=t7EMsGpYKs1I7Lb6PNVJHcXMwzFDLriuOWoli8trGzkPdQ9Pxv4cppWZNQoSwwi12LtekB lUeaAhfyQq2eptd+89y0LY8IKJs3VL3x1uCHngv7MlcQrsf+KWmrDH4w4FUdY1T3pbYtRQ /96kuEetcI+reNUZjvGO72sXIo88Yik= 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 AEF8913797 for ; Thu, 13 Mar 2025 04:21:10 +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 sDqBGzZd0mcrYQAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 04:21:10 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 3/7] btrfs: prepare btrfs_page_mkwrite() for larger data folios Date: Thu, 13 Mar 2025 14:50:45 +1030 Message-ID: <8d975a6a45c3abac0a1eca861a9d0f4d5795ffe1.1741839616.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-Spam-Level: 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)[imap1.dmz-prg2.suse.org:helo]; 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-Score: -2.80 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 Thu Mar 13 04:20:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14014287 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 706247DA6A for ; Thu, 13 Mar 2025 04:21:37 +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=1741839699; cv=none; b=j26PLaHsS241W24s7gDULcMWY5nHfI0L3mBT8tHJBNeg5TZ97sPB+nEcw8we+YUSdr92WuMj7QbnSGTteSMm0yMQIrhWt3AVBFwokjv+OGTntBnB7P43OCOCkWU3gIFH0vIBqcqil0/qNlPHcCbfjIKvGkle/lhlXTJLMNKnb2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741839699; c=relaxed/simple; bh=/xzmG5K76lfmL5ajvWSgzrrRon+QcYkuwFUJpQk94xk=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PdT9i2Wi4bHx42XWdsfbtP64C+SUsX1ilkm6v/M85HZWQOs2Awm9CTjihAUk8xLS4c3ywigb9mhkHCsaIX19G86mad+GVqiAKoqwybubI4TnM3iK0rnpmpLJr51y4JNFmYMW5VVJb43DsHnyTdZl5f+D583pl/rpgrS2k2sGxR4= 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=jW3RnX1j; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=jW3RnX1j; 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="jW3RnX1j"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="jW3RnX1j" 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 C8A1D2118D for ; Thu, 13 Mar 2025 04:21:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839672; 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=jW3RnX1jpVmxI+OGZU/4uRQY7hcQJNrmBxqgo+5JO0nRaxDm0P/AjIEo/xwcbR4+CLTuVH LvRpfkixCMCbxuEAC7Z0J1Ya4HyBBWqP8uLUWkzEf8x1VipKsiL1VPYUsBgWe44BTxjHkT 7dRLUqM79qZOKR2D34RGDW+JMxZ1kEc= Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.com header.s=susede1 header.b=jW3RnX1j DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839672; 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=jW3RnX1jpVmxI+OGZU/4uRQY7hcQJNrmBxqgo+5JO0nRaxDm0P/AjIEo/xwcbR4+CLTuVH LvRpfkixCMCbxuEAC7Z0J1Ya4HyBBWqP8uLUWkzEf8x1VipKsiL1VPYUsBgWe44BTxjHkT 7dRLUqM79qZOKR2D34RGDW+JMxZ1kEc= 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 F277413797 for ; Thu, 13 Mar 2025 04:21:11 +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 sNwALDdd0mcrYQAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 04:21:11 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 4/7] btrfs: prepare prepare_one_folio() for larger data folios Date: Thu, 13 Mar 2025 14:50:46 +1030 Message-ID: <20cf962e9d343e2549d43fa95f3169b088370efb.1741839616.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: C8A1D2118D 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%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; 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)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[linux-btrfs@vger.kernel.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]; DKIM_SIGNED(0.00)[suse.com:s=susede1]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.com:+] X-Rspamd-Server: rspamd1.dmz-prg2.suse.org 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 Thu Mar 13 04:20:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14014281 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 4030615E90 for ; Thu, 13 Mar 2025 04:21:15 +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=1741839679; cv=none; b=uC1z6upvkF4EUWYd+io95uCiW+M/fbAkaHCcsY/NRA3Ydb6SCYFTVDoaGUgk3rXPtN05/TdKPN3xmcpgnAqDYmN223rrH8QdaQOjoszLeXMIftyoo+rii9Ooa+UqvZy+urt/F2ZcjpmnCdDwquEgcAOsepETNZTkaItZ/xwmhd0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741839679; c=relaxed/simple; bh=mp7Hg6NTG1kBcAShqejDWAvWrektxAdwNKEVLqfJgn0=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R1aC1merHT8ZRhBKviWQBKVzBFfM3OwgMt93RADgdC5mwBmtjLJs2VtqeunNarfUGVLXVTl031paaq+ppT/1US/zNV+xo80tNlLO0uUX6fCsdt7I3S2UgLL85bxNv8tPZmDqAcSBgsgpntBrEAOuOYT8edbNWRl3gb8njuSkrUo= 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=Bixw+Cbf; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=Bixw+Cbf; 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="Bixw+Cbf"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="Bixw+Cbf" 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 2CF2C1F388 for ; Thu, 13 Mar 2025 04:21:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839674; 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=Bixw+CbfOdWoNMwgsLr9dRKEDnihwO9r6qNWlbQL5SZLZvrfgQMTwCyWksLJEq79N3r6L/ CsS9UtESgpF4FNd0HSi1ebA7hL1S0JzRswqzf/sM9osBMi8kt/Fq0h6zpUiVEbzeTNibbp mOH0o7rTDWzGCsOvt81q7ItSxE9lxVY= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839674; 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=Bixw+CbfOdWoNMwgsLr9dRKEDnihwO9r6qNWlbQL5SZLZvrfgQMTwCyWksLJEq79N3r6L/ CsS9UtESgpF4FNd0HSi1ebA7hL1S0JzRswqzf/sM9osBMi8kt/Fq0h6zpUiVEbzeTNibbp mOH0o7rTDWzGCsOvt81q7ItSxE9lxVY= 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 4C71313797 for ; Thu, 13 Mar 2025 04:21:13 +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 6BVoAzld0mcrYQAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 04:21:13 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 5/7] btrfs: prepare end_bbio_data_write() for larger data folios Date: Thu, 13 Mar 2025 14:50:47 +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-Level: 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)[imap1.dmz-prg2.suse.org:helo]; 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-Score: -2.80 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 Thu Mar 13 04:20:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14014284 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 4902D2CCC5 for ; Thu, 13 Mar 2025 04:21:24 +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=1741839686; cv=none; b=dufiTXnz6vewmPutsNEq2ArFPAfHPUaGpe7kwwLiMDMM6LrBhkWojVO6ZzVNEZy9VLQMK29oLQ1LeKIf3CtnJYujrLNeDiDsqiK5Srx4qvMEFChpkjfFVtgqJHx6RY5qXNe8f/x0kTlPrcUNbrapGG9BVj3MHMnmN2khXfmd7as= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741839686; c=relaxed/simple; bh=fV39FIZBHcLoysOcEHA/fNtbn1s1mlpDtFc3Eo+jfyo=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T+QhnAQ10YY5rtFoZiYSqTsEIUir4CWVPSVE4898t7KkQ9YLC5ppDqddOT2fq8Km1dUXPIBE8U24urTjpHTXe9rJv7TNOQQU1esCmkLTuE3Up8XRoJpqgkrHKpeCmS1TOIDG7GfftRgTkNjMscns9ANktv7vmHyQ0qbkCvSR8XY= 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=iSjOzPnR; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=iSjOzPnR; 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="iSjOzPnR"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="iSjOzPnR" 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 660CF1F394 for ; Thu, 13 Mar 2025 04:21:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839675; 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=iSjOzPnRyl0r+aQ9K8Dg3cw/EjElIDm1imRZYq4weKmjIaUtc+c/lKYHOaLbxZmjWfDC0+ G4SN/CIAdktyOEvd1D7qoE0HL1GW3zI1UFOrhwJtLf+juzkKvCtpiRwhvMjqHbjKkgVo4H tdGl/AQXE/HJJ9DlZbnAgprueU4QEEs= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839675; 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=iSjOzPnRyl0r+aQ9K8Dg3cw/EjElIDm1imRZYq4weKmjIaUtc+c/lKYHOaLbxZmjWfDC0+ G4SN/CIAdktyOEvd1D7qoE0HL1GW3zI1UFOrhwJtLf+juzkKvCtpiRwhvMjqHbjKkgVo4H tdGl/AQXE/HJJ9DlZbnAgprueU4QEEs= 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 9AAE613797 for ; Thu, 13 Mar 2025 04:21:14 +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 +I6PFjpd0mcrYQAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 04:21:14 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 6/7] btrfs: subpage: prepare for larger data folios Date: Thu, 13 Mar 2025 14:50:48 +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)[imap1.dmz-prg2.suse.org:helo]; 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 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 Thu Mar 13 04:20:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 14014286 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 F07FF15E90 for ; Thu, 13 Mar 2025 04:21:30 +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=1741839692; cv=none; b=LPBE9GjzIlUHvYrDspwaBodyg0oBg7JTSj2pd0OKoaKxT9B1Y25KKPoSsm+TRl/bLRbYkFPBKqi+u3Gj8Z21jgYoy4Tj7dyM2nuZ8YKq7hi+LZn1HwyzRSzfyjRyIK/6ACi+aBytjH/CH3Ckt+3NThCrQZQBTnxrRsN8yKRbDa8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741839692; c=relaxed/simple; bh=GEN3iJkWeDvE/KSQxPiVSF1LRJQphDfycxGUh2NOZUg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EfHZHZXl+5BZ5YbHeKDAEtQcQrMyDBnvXDI9Xy/FmGLtB+qzaUhA6VnjkwW0SQ8loE60OeomRHPNi4NNyUOuDTKNsKNziMcnftYZqyI92qQAYoO6oQ70Z8EyNexNpjvIRkcBfxTYscMJzWa6NVrJdE4oY1eH7draSF+cyUaq9b8= 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=F6FGqyP0; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b=F6FGqyP0; 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="F6FGqyP0"; dkim=pass (1024-bit key) header.d=suse.com header.i=@suse.com header.b="F6FGqyP0" 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 B47821F449 for ; Thu, 13 Mar 2025 04:21:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839676; 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=F6FGqyP0ckqsQnBOMu2fo4SI2uATNHkU13bK8fT5RKOiyqNLP8AdO0AqKoaZo+4PoW4b1t Dus+Mw0fjSP8TnhsbsoyBvt2sVpddfVtqU+r2cNArKXRs4+LwIRT+fonJ1wEKUNzgwo5qQ hbVLfXi6u86K0qDm2jK6NJWSXfGEFac= Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1741839676; 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=F6FGqyP0ckqsQnBOMu2fo4SI2uATNHkU13bK8fT5RKOiyqNLP8AdO0AqKoaZo+4PoW4b1t Dus+Mw0fjSP8TnhsbsoyBvt2sVpddfVtqU+r2cNArKXRs4+LwIRT+fonJ1wEKUNzgwo5qQ hbVLfXi6u86K0qDm2jK6NJWSXfGEFac= 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 DDE5813797 for ; Thu, 13 Mar 2025 04:21:15 +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 GK8HJztd0mcrYQAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 04:21:15 +0000 From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 7/7] btrfs: zlib: prepare copy_data_into_buffer() for larger data folios Date: Thu, 13 Mar 2025 14:50:49 +1030 Message-ID: <7704f5f57ab91f295ccb6f8427455789d59721c5.1741839616.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-Spam-Level: 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)[imap1.dmz-prg2.suse.org:helo]; 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-Score: -2.80 X-Spam-Flag: NO 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,