We're looking at the problem here, and we can duplicate it.
It will be a hard problem to solve, but the main problem is that you are
creating so many extents in the file. If you do not create so many
extents, you will not have this problem.
-Eric
On Tue, 2002-10-01 at 04:24, tom wang wrote:
> xfs-developers:
> when I run the shell program as following on a xfs
> FS, the process will locked.
>
> #!/bin/sh
> for((i=0;i<300000;i++)); do
> truncate /mnt/current/a $(($i*8192));
> cat /tmp/4kfile >> /mnt/current/a
> done
> /tmp/4kfile is a 4096-sized file
> xfs FS mounted at /mnt/current
> the truncate program:
>
> #include <unistd.h>
> #include <stdlib.h>
> #include <stdio.h>
>
> int main(int argc, char *argv[])
> {
> long long length = 0;
>
> if( argc < 2 || argc > 3 ){
> printf("Usage: truncate filename [length]\n");
> return -1;
> }
>
> if( argv[2] )
> length = atoll(argv[2]);
>
> if( truncate64( argv[1], length ) ){
> perror("truncate failed");
> return -1;
> }
> return 0;
> }
>
>
> _________________________________________________________
> Do You Yahoo!?
> "发短信赢手机,快来参加雅虎巨星秀!"
> http://cn.ent.yahoo.com/star/midautumn/index.html
>
--
Eric Sandeen XFS for Linux http://oss.sgi.com/projects/xfs
sandeen@xxxxxxx SGI, Inc. 651-683-3102
|