Tested the JFFS2 on 5.4 kernel as the instruction said, still got some errors, any ideas? Without the patch, root@imx8mmevk:~# cat /proc/mtd dev: size erasesize name mtd0: 00400000 00020000 "mtdram test device" mtd1: 04000000 00020000 "5d120000.spi" root@imx8mmevk:~# mtd_debug info /dev/mtd0 mtd.type = MTD_RAM mtd.flags = MTD_CAP_RAM mtd.size = 4194304 (4M) mtd.erasesize = 131072 (128K) mtd.writesize = 1 mtd.oobsize = 0 regions = 0 root@imx8mmevk:~# flash_erase /dev/mtd0 0 0 Erasing 128 Kibyte @ 3e0000 -- 100 % complete root@imx8mmevk:~# mount -t jffs2 /dev/mtdblock0 test_dir/ mount: /home/root/test_dir: wrong fs type, bad option, bad superblock on /dev/mtdblock0, missing codepage or helper program, or other error. With the patch, root@imx8mmevk:~# cat /proc/mtd dev: size erasesize name mtd0: 00400000 00020000 "mtdram test device" mtd1: 04000000 00020000 "5d120000.spi" root@imx8mmevk:~# mtd_debug info /dev/mtd0 mtd.type = MTD_RAM mtd.flags = MTD_CAP_RAM mtd.size = 4194304 (4M) mtd.erasesize = 131072 (128K) mtd.writesize = 1 mtd.oobsize = 0 regions = 0 root@imx8mmevk:~# flash_erase /dev/mtd0 0 0 Erasing 128 Kibyte @ 3e0000 -- 100 % complete root@imx8mmevk:~# mount -t jffs2 /dev/mtdblock0 test_dir/ root@imx8mmevk:~# mount /dev/mtdblock0 on /home/root/test_dir type jffs2 (rw,relatime) BUT, it's not writable. root@imx8mmevk:~# cp test_file test_dir/ cp: error writing 'test_dir/test_file': Invalid argument root@imx8mmevk:~# dd if=/dev/urandom of=test_dir/test_file bs=1k count=1 dd: error writing 'test_dir/test_file': Invalid argument 1+0 records in 0+0 records out 0 bytes copied, 0.000855156 s, 0.0 kB/s On Fri, Sep 27, 2019 at 3:38 AM Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> wrote: > > Hello! > > On 26.09.2019 17:21, David Howells wrote: > > > The mounting of jffs2 is broken due to the changes from the new mount API > > because it specifies a "source" operation, but then doesn't actually > > process it. But because it specified it, it doesn't return -ENOPARAM and > > What specified what? Too many "it"'s to figure that out. :-) > > > the caller doesn't process it either and the source gets lost. > > > > Fix this by simply removing the source parameter from jffs2 and letting the > > VFS deal with it in the default manner. > > > > To test it, enable CONFIG_MTD_MTDRAM and allow the default size and erase > > block size parameters, then try and mount the /dev/mtdblock<N> file that > > that creates as jffs2. No need to initialise it. > > One "that" should be enough. :-) > > > Fixes: ec10a24f10c8 ("vfs: Convert jffs2 to use the new mount API") > > Reported-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> > > cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx> > > cc: Richard Weinberger <richard@xxxxxx> > > cc: linux-mtd@xxxxxxxxxxxxxxxxxxx > [...] > > MBR, Sergei > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/ -- Sincerely, Han XU