problems writing an fs image to a disk partition

Giorgio Dal Molin giorgio.nicole at arcor.de
Wed Sep 12 08:06:07 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 applied the two patches and I can confirm that they fix the problem
for me.

Thanks again.

giorgio



More information about the barebox mailing list