From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B850C27C4F for ; Thu, 13 Jun 2024 12:57:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C1DDE6B008A; Thu, 13 Jun 2024 08:57:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BCD996B008C; Thu, 13 Jun 2024 08:57:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A94C56B0093; Thu, 13 Jun 2024 08:57:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 8B6CD6B008A for ; Thu, 13 Jun 2024 08:57:56 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 2A158C05A0 for ; Thu, 13 Jun 2024 12:57:56 +0000 (UTC) X-FDA: 82225867752.15.1B84F88 Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by imf02.hostedemail.com (Postfix) with ESMTP id 293028000D for ; Thu, 13 Jun 2024 12:57:52 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=yoseli.org header.s=gm1 header.b=HS2TOvkZ; spf=none (imf02.hostedemail.com: domain of jeanmichel.hautbois@yoseli.org has no SPF policy when checking 217.70.183.196) smtp.mailfrom=jeanmichel.hautbois@yoseli.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718283472; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ln17ZxRL+upVh68wnbTdi1KTA2jYfvXcMhNeLfk448s=; b=Yr7O35ZTPy+l5SNvnJAzs5BU5arEKsMbnX5Gf+i6azWSEf+9rv26l5r+wNegcpArSCwHH5 lvQc79g0C5WiineE01/3w7r/1gIUzIiz84H07UON545fyn4pKpZISCCnqqAVdpNcZE8od9 +tC2xApngGn2XiHCRvEkU89Y7X+hxiY= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=yoseli.org header.s=gm1 header.b=HS2TOvkZ; spf=none (imf02.hostedemail.com: domain of jeanmichel.hautbois@yoseli.org has no SPF policy when checking 217.70.183.196) smtp.mailfrom=jeanmichel.hautbois@yoseli.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718283472; a=rsa-sha256; cv=none; b=YaI0DV5X952xNlOwL+4Eg8Vut2q5ZSKemEOrzMBbO+ZPa3/oNYI0TfOAWHwQ+e3rOxt+F6 2VAwwzWnzeI8uUEHtFCPWVmU1nsaUUWJu04z+TpcHOrMJ3dibqYjRfsPyaXNwhp71e76a9 fDk9X/heRpqnES+MIZySRazqw1aMNVw= Received: by mail.gandi.net (Postfix) with ESMTPSA id AF49EE000F; Thu, 13 Jun 2024 12:57:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1718283471; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ln17ZxRL+upVh68wnbTdi1KTA2jYfvXcMhNeLfk448s=; b=HS2TOvkZeG68w8F8vNWzKEgAX22dLWuSPHlDvOdcAPBycdM7mjvCte+RRtlAbl3VFoiZj/ qPcNES9ddnnPHYkw/e8p/WKEf/zkC4Zxr4c8IVlFQx0SiX76phFUUJOW9DSAh1TTJsqPhx I2pKDrlruxBKZn2mTt15ASOW9pmAOVatGGVjIjboWTEiG6ebFdHH5p0J5lU89Exyg05WkH lbazXqjFMXfxCLx/I9Mj2kfhC0BPiYk4viK2Cqr5rzIx22blshbo71cjUkgxCfj2XlPhEq gLjvufC8BxaTKgwzy0DCeiIQsmaw3NWiV8L2srBMZ/90k578XQY2eQ21MsSyxQ== Message-ID: Date: Thu, 13 Jun 2024 14:57:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Issue with JFFS2 and a_ops->dirty_folio To: Christoph Hellwig Cc: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-mtd@lists.infradead.org, willy@infradead.org, Andrew Morton , linux-m68k@lists.linux-m68k.org References: <0b657056-3a7f-46ba-8e99-a8fe2203901f@yoseli.org> Content-Language: en-US From: Jean-Michel Hautbois In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-GND-Sasl: jeanmichel.hautbois@yoseli.org X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 293028000D X-Stat-Signature: fh3jebtofnqhsk7wjgh3xnkzai7ofuq6 X-Rspam-User: X-HE-Tag: 1718283472-259142 X-HE-Meta: U2FsdGVkX18HESlPsvz2B9fgSe+/U+WAF2e+XLyGg52D0X2B6ZTStbDNb2wgTK5hsM4EIhAe6cKmOON12g7JbxJfdpjZEq5TSX1waCSGcigu+Pdk/gVTLJ2QrpWCLKGPoi9cYZ5HtpiU1oPdxZpSA44mcHvCwAo+Si7GJoiRjm0TakzAGddcs1WifRo785l2SRofgxCGjMz92SuAJJr5DK/En4deldjKgl+gLJ1/n4bbkXZHk+orNHbbkcw7IMzHw0eCcSUKpVa54LKVEONEcD1C1/lLoqXI3nlqcQlgw8U8tCX0zGGkKb+gRB20TKwUhsLoctKpuXuVYObaaBmeU27K8TvskKAyIxzjJTZIRVHVnndqH2fyx0q+NLz3Q3NsD+ZpTHjPTW86zwGcC+r/BCJcbGJkl8bDiKPbyiwUTUdlt++NFbxDK3Rhoe+bJL9OJd7izKB4rEXEKcI0e6E6bHTJaqCOtCYM0/F8VUdj654dkuP3WAbA9buny4rXhQGdCDdHlCXAPL+Bo+J70BSZ46EY+EAT7GoSN4tFJDx6VT19QeLDEBBUZ8DF+DiaLJJi7Iothx1auopJZnIayKK+PYQomQkCixUf8vixLAHmD+vtf7Qaz+ZnxDh9R/Fo7s0LN3ikObpAEoFmmookoKRNETXC5GpygUJ8H0y9x3hHxYiPfGo/2x3PMYgJUs2IkJLmcbbkJmxIZmc3b8wXe2WsEm+fJBWD2tQV26/Ds+K3AWkIC1oNtmrtLY7R9bvxFVflS3tS3C4dswXiuYTOmxHg+FNwLKXq3odUy8rdwq8wDhYb5G4vcZNO5I3jlsL/JKjh4Kpb719MDBFTvjHgKbAwWQ5Li40cyIG/cJ6xP2gTNpI6WhpbUKbBsjpSrctxh3R5Owc2WVlnCeG2h61pMI0h0OLuzDDaX4tjDy0yip8DyIX4e+5Ixf8ErODzs0giJlrIZF4uh3rit4EQhKGCmun StmyzU+P 6KaW28DZFtkm9Z4EuA6RgBEnGWZcR87mH9qzzpIeCDlKmfZfH5mGTLmlfdugfPexSr5bgkiUFSaZodo7rAmj0ta208qnHOgpLK3kDNmlEBiMZqs8ofUMsDYd6En2vS0RkdhOFUpPkvA11VZSK0ULwQyiJQFWObuW8vN1tf4JeH+BmsW0bpQ87QAOOmM7YkuHtDgcq X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hello Christoph, On 13/06/2024 13:20, Christoph Hellwig wrote: > On Thu, Jun 13, 2024 at 09:05:17AM +0200, Jean-Michel Hautbois wrote: >> Hi everyone ! >> >> I am currently working on a Coldfire (MPC54418) and quite everything goes >> well, except that I can only execute one command from user space before >> getting a segmentation fault on the do_exit() syscall. > > Looks like jffs2 is simply missing a dirty_folio implementation. The > simple filemap_dirty_folio should do the job, please try the patch > below: > > > diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c > index 62ea76da7fdf23..7124cbad6c35ae 100644 > --- a/fs/jffs2/file.c > +++ b/fs/jffs2/file.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#include > #include "nodelist.h" > > static int jffs2_write_end(struct file *filp, struct address_space *mapping, > @@ -75,6 +76,7 @@ const struct address_space_operations jffs2_file_address_operations = > .read_folio = jffs2_read_folio, > .write_begin = jffs2_write_begin, > .write_end = jffs2_write_end, > + .dirty_folio = filemap_dirty_folio, > }; > > static int jffs2_do_readpage_nolock (struct inode *inode, struct page *pg) Thanks, I did implement this one, but now I have another weird issue, I don't know if this can be related... When the bash command is launched (my init command is init=/bin/bash) I can launch a first command (say, ls for instance) and it works fine. But a second call to this same command or any other one juste returns as if nothing was done... And I can't even debug, strace fails too: execve("/bin/ls", ["/bin/ls"], 0xbfb31ef0 /* 5 vars */) = 0 brk(NULL) = 0x2ab7c000 atomic_barrier() = 0 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/lib/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\0\0\0\0\0004"..., 512) = 512 statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_ MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=43120, ...}) = 0 mmap2(NULL, 59888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =[ 15.830000] random: crng init done 0x60022000 mmap2(0x6002c000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x6002c000 mmap2(0x60030000, 2544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x60030000 close(3) = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\2\324\n\0\0\0004"..., 512) = 512 statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|STATX_ MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=1257660, ...}) = 0 mmap2(NULL, 1290920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x60032000 mmap2(0x6015e000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12c000) = 0x6015e000 mmap2(0x60164000, 37544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x60164000 close(3) = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 atomic_barrier() = 0 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x6016e000 set_thread_area(0x601759c0) = 0 get_thread_area() = 0x601759c0 atomic_barrier() = 0 set_tid_address(0x6016e548) = 28 set_robust_list(0x6016e54c, 12) = 0 mprotect(0x6015e000, 8192, PROT_READ) = 0 mprotect(0x6002c000, 8192, PROT_READ) = 0 mprotect(0x2ab72000, 8192, PROT_READ) = 0 mprotect(0x6001e000, 8192, PROT_READ) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xc00815f4} --- +++ killed by SIGSEGV +++ I suppose this can be related to the ELF_DT_DYN_BASE address, but I can't see what is going on yet. Thanks, JM