From patchwork Sun Dec 21 21:20:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1027 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1766352071; bh=veeWSFEZ27XEFJ/0q3bdrqy9uEzXLqiXKbhsYi0KHnQ=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=ML9mePibXWXhI3EjIOAdjo+2UGR1XfcaSeZO+jNNmIM8r2WeMNFqn8ivh6xSbtzeV qvFFVI6jcfMp4p+zbyfnZNWIOdnY+dJJtnSfVkXBGzeZv0g7eB1+sRwQUurKnrq7Au vGyzEckDBoXictNPT+HrjkKsOwc+PmK79KwzRR9GaHOTZUIx8LSlsdfvSGFxb/2zDs u4v+VNGGpi3Jf65/+LXMiGBrUHs99j8Tm0uyHe41WADByZZbq8e3sCA/KBLoXfuNvN 76wJzQCZgDLVQw54J1KVkHaLt5x7IQm8ymxskAEN+or3ncmYGfczOUAOOxKGiIWnl4 c9Gj8VOV0BUXg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id D9A3964D32 for ; Sun, 21 Dec 2025 14:21:11 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id eyLTWcsHJIhK for ; Sun, 21 Dec 2025 14:21:11 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1766352070; bh=veeWSFEZ27XEFJ/0q3bdrqy9uEzXLqiXKbhsYi0KHnQ=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=ByBAeJsOsw5dHhEog4pOAaM/osM7v7liqpomT2OPayu4vIa7/O4c2Vv7N82sVGeQT UZHk8Rutx8nRLwORKeDQaRSjf8I/fUDu4ze8RdsuKJ6yJD3uWhBls5lf0pNjFVjk2N F6GZD6W0vmKi3Dk9hNC+zrn2NtyO1UAme6i9ecSGIbHYjJfNhUAL5+zaOlsnAxmkCa WsvWnn4I+ztR7UqnM4vyrlSSWSmVtvk37836l/Sp9je7CLKBF4UNjVaeXBSL4F3mzW DpqAi50yUKq03tpgrIi7D4HJauiYkVb3rMv8ygRXvXzo4K8DEGdiVO3XKORsCQWaLH lEHB5CWQEQ5Vw== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 66D3A64D2B for ; Sun, 21 Dec 2025 14:21:10 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1766352066; bh=YYrGfgUrdC4lGAQ5TyzA3SO9kuTLzKeTUNyH047vkv4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tRgMQefoclIpLvqeQjQJ/QcoTFFOejdEJiFfS9uXBiDZKynEfz99YXao7goHNHQ8Z wWLy6M6Um8ouJLjS+qTa7tLNEFPa5Zt1T7WnC+stSr/Lt0i9/hW+aPv3h7bjOsMNYW bQbZdVmKP1YCYrqE51djZLxMGJdGsc4ZL0NTVNPyWNj7tJQVGex4Ejs27hONe5yLso edxnsWae0ixqug5M8hj84gdAM/zHs1WABHXB5AhGlXnDQ95o6GrJqayGlmHxPWDdpM vXcFRJYKG1WiUsau8TkuFRLtrUzohx1K+hPOMgvgS0sLCUZxLDUfYEvwZSuG6iTGK/ Z8zKFQJMiIjGQ== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 69C2064CDE; Sun, 21 Dec 2025 14:21:06 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id kVicEvQueqSO; Sun, 21 Dec 2025 14:21:06 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1766352066; bh=pShJpe+HMFKtTjTqpaGXZhxQbKhvAI/7+/9Z6D9SRLA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lJ9/SSZaikVa9kroWgBBgePAyvFg/ilUOA8zc9XpGP46a2oIVsY7BG69C1GLPr2jT GM/RowpMVfINs4BZpyL7bt2VZizm9upWNWykcWwQCswLXtn87uHMzR0J7Fycej9yW4 UFUycNwjWbGjw4wXrmNGgJU33+u8YpYd+7/VbrHlAookDM3qZsKMP6yp4wE9jMtDdx pSvbcKuuOE7FSECICHDofAdaAJi9cVAqGq3/wBPqxCTnYVxNXTZOJR1y9mFRD5+ll/ +eCS20XHszQ27alZlB/YfbAhQIbJzz9FJB/8S43Ua5Sq6NaTmOiHSIdY7Cnwr1ZGCw 2L8RWUgv0RANg== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id CE21764D12; Sun, 21 Dec 2025 14:21:05 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Sun, 21 Dec 2025 14:20:21 -0700 Message-ID: <20251221212028.857348-14-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251221212028.857348-1-sjg@u-boot.org> References: <20251221212028.857348-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: EW2X4EHLWBGVBW2YYIHTH2MTHZLWVJ5G X-Message-ID-Hash: EW2X4EHLWBGVBW2YYIHTH2MTHZLWVJ5G X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Simon Glass , "Claude Opus 4 . 5" X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 13/15] ext4l: Add move_extent.c to the build List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass Add support for extent-moving for write operations. Use ext4_uboot.h compatibility layer and add stubs for: - down_write_nested - forwards to down_write - filemap_release_folio, IS_SWAPFILE, PAGE_MASK - lock_two_nondirectories, unlock_two_nondirectories Co-developed-by: Claude Opus 4.5 Signed-off-by: Simon Glass --- fs/ext4l/Makefile | 2 +- fs/ext4l/ext4_uboot.h | 26 ++++++++++++++++++++++++++ fs/ext4l/move_extent.c | 5 +---- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/fs/ext4l/Makefile b/fs/ext4l/Makefile index df3c016e3c1..4afcc43e34f 100644 --- a/fs/ext4l/Makefile +++ b/fs/ext4l/Makefile @@ -8,7 +8,7 @@ obj-y := interface.o stub.o obj-y += balloc.o bitmap.o block_validity.o dir.o ext4_jbd2.o extents.o \ extents_status.o file.o fsync.o hash.o ialloc.o \ indirect.o inline.o inode.o mballoc.o migrate.o \ - mmp.o namei.o page-io.o readpage.o \ + mmp.o move_extent.o namei.o page-io.o readpage.o \ super.o symlink.o xattr.o \ xattr_hurd.o xattr_trusted.o \ xattr_user.o fast_commit.o orphan.o diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h index 409391dda20..617ec9a8afe 100644 --- a/fs/ext4l/ext4_uboot.h +++ b/fs/ext4l/ext4_uboot.h @@ -2943,4 +2943,30 @@ static inline struct new_utsname *init_utsname(void) return &uts; } +/* + * Stubs for move_extent.c + */ + +/* down_write_nested - nested write lock acquisition */ +#define down_write_nested(sem, subclass) \ + do { (void)(sem); (void)(subclass); } while (0) + +/* filemap_release_folio - try to release a folio */ +#define filemap_release_folio(folio, gfp) \ + ({ (void)(folio); (void)(gfp); 1; }) + +/* IS_SWAPFILE - check if inode is a swap file */ +#define IS_SWAPFILE(inode) ({ (void)(inode); 0; }) + +/* PAGE_MASK - mask for page alignment */ +#ifndef PAGE_MASK +#define PAGE_MASK (~(PAGE_SIZE - 1)) +#endif + +/* lock_two_nondirectories - lock two inodes in order */ +#define lock_two_nondirectories(i1, i2) \ + do { (void)(i1); (void)(i2); } while (0) +#define unlock_two_nondirectories(i1, i2) \ + do { (void)(i1); (void)(i2); } while (0) + #endif /* __EXT4_UBOOT_H__ */ diff --git a/fs/ext4l/move_extent.c b/fs/ext4l/move_extent.c index 4b091c21908..db3066b22a8 100644 --- a/fs/ext4l/move_extent.c +++ b/fs/ext4l/move_extent.c @@ -5,10 +5,7 @@ * Akira Fujita */ -#include -#include -#include -#include +#include "ext4_uboot.h" #include "ext4_jbd2.h" #include "ext4.h" #include "ext4_extents.h"