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
|