Re: [TEST] NTFS patch

From: Maxim Maximov <mcsi_at_mcsi.pp.ru>
Date: Sun, 19 Dec 2004 16:02:42 +0300
Jean-Sébastien Pédron wrote:
> Poul-Henning Kamp wrote:
> 
>> Here is a combined patch for the two problems that's been
>> reported against NTFS after my mount changes.
>>
>> Please test & report.
> 
> 
> With mmap(2), it doesn't panic() anymore, but the content of a file 
> copied with cp(1) is wrong.
> 
> Here is a small test case:
> 
> ----------------
> # mount
> [...]
> /dev/ad2s1 on /mnt/ntfs (ntfs, local, read-only)
> 
> # cat /mnt/ntfs/printenv.pl
> #!c:/Perl/bin/Perl.exe
> ##
> ##  printenv -- demo CGI program which just prints its environment
> ##
> 
> print "Content-type: text/plain\n\n";
> foreach $var (sort(keys(%ENV))) {
>     $val = $ENV{$var};
>     $val =~ s|\n|\\n|g;
>     $val =~ s|"|\\"|g;
>     print "${var}=\"${val}\"\n";
> }
> 
> # cp /mnt/ntfs/printenv.pl .
> 
> # xxd -l 64 printenv.pl
> 0000000: eb52 904e 5446 5320 2020 2000 0201 0000  .R.NTFS    .....
> 0000010: 0000 0000 00f8 0000 3f00 ff00 3f00 0000  ........?...?...
> 0000020: 0000 0000 8000 8000 9920 0600 0000 0000  ......... ......
> 0000030: 2000 0000 0000 0000 4c10 0300 0000 0000   .......L.......
> 
> # xxd -l 64 /dev/ad2s1
> 0000000: eb52 904e 5446 5320 2020 2000 0201 0000  .R.NTFS    .....
> 0000010: 0000 0000 00f8 0000 3f00 ff00 3f00 0000  ........?...?...
> 0000020: 0000 0000 8000 8000 9920 0600 0000 0000  ......... ......
> 0000030: 2000 0000 0000 0000 4c10 0300 0000 0000   .......L.......
> ----------------
> 
> This is with today's CVS. The NTFS file system was prepared under 
> Windows 2000 SP4.
> 
> In this example, the perl script is ok on the file system, but mmap(2) 
> return data from he beginning of the file system, not the file.
> 
>  From sys/fs/ntfs/ntfs_vnops.c, ntfs_bmap():
> 
>   if (ap->a_bop != NULL)
>     *ap->a_bop = &ntmp->ntm_devvp->v_bufobj;
>   if (ap->a_bnp != NULL)
>     *ap->a_bnp = ap->a_bn;
> 
> The logical block number isn't converted (because it expects 
> ntfs_strategy() to be called), and bstrategy() will call directly the 
> device strategy function with the wrong block number.
> 
> Am I the only one to see this behaviour ?

No. Me too. Kernel as of Dec 17, mounting WinXP partition.

Poul-Henning, are there any new patches to test?

-- 
Maxim Maximov
Received on Sun Dec 19 2004 - 12:02:53 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:24 UTC