problems writing an fs image to a disk partition

Giorgio Dal Molin giorgio.nicole at arcor.de
Wed Sep 12 00:31:18 PDT 2018


> On September 12, 2018 at 9:12 AM Sascha Hauer <s.hauer at pengutronix.de> wrote:
> 
> 
> Hi Giorgio,
> 
> On Tue, Sep 11, 2018 at 10:33:52PM +0200, Giorgio Dal Molin wrote:
> > Hi,
> > 
> > today I've tried barebox v2018.09.0 on an EFI system.
> > It basically runs but I have problems when writing an fs image file
> > to a disk partition:
> > 
> >  > cp rootfs.img /dev/disk1.userland
> > 
> > barebox v2018.09.0 returns a 'no space left on device' error.
> > 
> > First of all I must ask if this is still the proper way to
> > write a content to a disk partition.
> 
> Yes, it is. You found a bug.
> 
> > 
> > In case this should still work as expected here is a pseudo
> > backtrace of how the error happens on my system:
> > 
> > commands/cp.c:do_cp() ret = copy_file(argv[i], argv[argc - 1], verbose);
> > lib/libfile.c:copy_file() dstfd = open(dst, mode);
> > fs/fs.c:open() error = fsdrv->truncate(&fsdev->dev, f, 0);
> > fs/devfs.c: devfs_truncate()
> > 
> > in the call to devfs_truncate() I see cdev->ops->truncate == NULL
> > and f->fsdev->dev.num_resources == 0 and this makes the function
> > return -ENOSPC.
> > 
> > Hope the report helps identify a problem.
> 
> Yes, indeed, thanks. The problem was that with the switch to dentry
> cache implementation the files in /dev/ no longer appear as character
> devices but as regular files. the copy_file function then does a
> truncate on the files which fails. I just sent out a patch addressing
> this issue, please test. I would also recommend to take the second patch
> although this fixes another issue.
> 
> Sascha
> 
Hi,

I've seen the two patches, thank you.

I've seen the dentry 'big patch' and I knew it was the problem
but it was too complex for me to understand exactly where the proper
fix should go.

I'll try them out today,

giorgio



More information about the barebox mailing list