xfs
[Top] [All Lists]

Re: [PATCH] xfstests: pwrite hang when writing from mmaped buffer of the

To: "Zhong, Xin" <xin.zhong@xxxxxxxxx>
Subject: Re: [PATCH] xfstests: pwrite hang when writing from mmaped buffer of the same page
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 13 Dec 2010 11:19:54 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1292225083-17713-1-git-send-email-xin.zhong@xxxxxxxxx>
References: <1292225083-17713-1-git-send-email-xin.zhong@xxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Mon, Dec 13, 2010 at 03:24:43PM +0800, Zhong, Xin wrote:
> The problem is found in meego testing:
> http://bugs.meego.com/show_bug.cgi?id=6672
> Only btrfs has this problem so far. Other linux fs works well.

Thanks, the patch pretty good.  A few think I'd like to improved,
though:

> +_cleanup()
> +{
> +    cd /
> +    rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common.rc
> +. ./common.filter
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs generic
> +_supported_os Linux
> +
> +TESTFILE=$TEST_DIR/test_file
> +TEST_PROG=$here/src/pwrite_mmap_blocked
> +
> +$TEST_PROG $TESTFILE

Please remove the test file after the test completed.  This is best done
in the cleanup function, as it's called both for sucessfull and error
exits.

> +QA output created by 248
> +pwrite 1 bytes from 2 to 3
> diff --git a/group b/group
> index 0f94dd9..0b4f514 100644
> --- a/group
> +++ b/group
> @@ -361,3 +361,4 @@ deprecated
>  245 auto quick dir
>  246 auto quick rw
>  247 auto quick rw
> +248 other

The test should also be part of the quick and rw groups.

> diff --git a/src/pwrite_mmap_blocked.c b/src/pwrite_mmap_blocked.c
> new file mode 100644
> index 0000000..40d7f7b
> --- /dev/null
> +++ b/src/pwrite_mmap_blocked.c
> @@ -0,0 +1,63 @@
> +#include <stdio.h>
> +#include <unistd.h>
> +#include <fcntl.h>
> +#include <stdlib.h>
> +#include <string.h>
> +#include <errno.h>
> +#include <time.h>
> +#include <sys/mman.h>
> +#include <sys/signal.h>
> +#include <sys/stat.h>

Please add a license header to the program, preferably GPLv2 or GPLv2 or
later.

> +
> +char *progname;
> +loff_t size;
> +int fd;
> +char *filename="./test_file";

The program is actually using the file name passed as the first
argument, and you're only using this variable for the error message,
please just remove it.

<Prev in Thread] Current Thread [Next in Thread>