Hi Bernhard,

On Wed, 21 Nov 2007, Bernhard Kaindl wrote:

>     I was trying to build OpenMoko on a NTFS-3g filesystem and ran into 
> an error,

Szuper! Finally a serious reason to raise the priority of

        http://ntfs-3g.org/support.html#filedelete

The same issue. 

It's not fixed yet because it occures very rarely. The probability is like 
0.001% if other, also rare conditions are true. So people didn't complain 
about it thus it never became the top priority.

Personally this bug is the number one on my wish list since July of 2006 
but work was focused on what users want us to do, not what we would like ;)

> and I found a way to reproduce it:
> 
> dd if=/dev/zero of=ntfs.image bs=1M count=300
> losetup /dev/loop7 ntfs.image
> mkfs.ntfs -Q /dev/loop7
> ntfs-3g /dev/loop7 /mnt

For the last three commands this shorter one works too:

        mkfs.ntfs -fQ ntfs.image
        ntfs-3g ntfs.image /mnt

When possible, it's better to avoid the usage of the loop device because 
it's buggy and can lockup the kernel, irrespectively of ntfs-3g use. 
Hopefully the per device dirty throttling patches will fix this in 2.6.24.

> svn co http://svn.openmoko.org/ /mnt/openmoko
> 
> This stops after 39MB download with:
> 
> ...
> A    
> /mnt/openmoko/trunk/src/target/OM-2007/artwork/themes/openmoko-standard-qvga/gtk-2.0/openmoko-mokotoolbox-with-search-background.png
> svn: In directory 
> '/mnt/openmoko/trunk/src/target/OM-2007/artwork/themes/openmoko-standard-qvga/gtk-2.0'
> svn: Can't move source to dest
> svn: Can't move 
> '/mnt/openmoko/trunk/src/target/OM-2007/artwork/themes/openmoko-standard-qvga/gtk-2.0/.svn/tmp/prop-base/light-brushed.png.svn-base'
>  to 
> '/mnt/openmoko/trunk/src/target/OM-2007/artwork/themes/openmoko-standard-qvga/gtk-2.0/.svn/prop-base/light-brushed.png.svn-base':
>  Operation not supported

A shorter one:

        while : ; do bonnie++ -s0 ; done

Usually this will reproduce the issue in the first 10-20 runs (no 
guarantee).

Unfortunately going over the relevant index update cases and writing 
efficient tests which give acceptable implementation and scenario coverage 
is not trivial and quite time consuming. I still hope that it will be done 
this year.

> BTW, the error didn't reproduce when I changed
> 
>       dd if=/dev/zero of=ntfs.image bs=1M count=300
> to
> 
>       dd if=/dev/zero of=ntfs.image bs=1M count=50

Most NTFS metadata is dynamic, depend on other things (e.g. volume size) 
and often even compressed (gives variable internal metadata sizes). Hereby 
the data structures can be quite different consequently the behavior too.
 
> Note: You have to run 'losetup -d /dev/loop7' before re-running the comand 
> seqence
>        to make the loopback driver use the new image!

Some of us are asking util-linux maintainers for transparent loop device 
handling:

        mount ntfs.img /mntpoint
        umount /mntpoint

The current way without losetup:

        mount -o loop ntfs.img /mntpoint
        umount -d /mntpoint

Thanks,
            Szaka

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
ntfs-3g-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ntfs-3g-devel

Reply via email to