On 07/24/2012 03:16 PM, Nitin Yadav wrote:
> Hi Wanlong,
>  Even I am getting error io_fsync write: Invalid argument, while running
> io test cases on linux 3.2 kernel.Below are the outputs for error.
> 
> aio02/aio_tio    0  TINFO  :  Running test 1
> 
> aio02/aio_tio    0  TINFO  :  Running test 2
> 
> aio02/aio_tio    0  TINFO  :  Running test 3
> 
> aio02/aio_tio    0  TINFO  :  Running test 4
> 
> aio02/aio_tio    0  TINFO  :  Running test 5
> 
> aio02/aio_tio    0  TINFO  :  Running test 6
> 
> aio02/aio_tio    0  TINFO  :  Running test 7
> 
> io_fsync write: Invalid argument 
> 

io_fsync() calls the syscall io_submit().
when doing IO_CMD_FSYNC and IO_CMD_FDSYNC, Linux kernel
will involve the filesystem's aio_fsync and aio_fdsync
operations, and if the filesystem doesn't implement
these two operations, it will return -EINVAL, this is
the error you meet here.
In fact, the syscall io_submit() in kernel is asynchronous,
and the performance is better than adding a outstanding
asynchronous aio_* operations.
In general, this CMD is not implemented in Linux kernel.

Thanks,
Wanlong Gao


> 
> Could you please suggest me some pointer.
> 
> Thanks!
> Nitin yadav
> 
> -----Original Message-----
> From: Wanlong Gao [mailto:[email protected]] 
> Sent: Tuesday, July 24, 2012 11:29 AM
> To: LTP
> Subject: [LTP] [PATCH V2] open_posix:aio_fsync:14-1: wait for
> aio_writecompletion
> 
> Wait for aio_write() completion.
> If aio_fsync() sync the fd without the previous aio_write()
> completion, it will cause Segment Fault.
> 
> Signed-off-by: Wanlong Gao <[email protected]>
> ---
>  .../conformance/interfaces/aio_fsync/14-1.c                    | 10
> ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git
> a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/14-1.c
> b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/14-1.c
> index a9cd3bf..02ba8a5 100644
> ---
> a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/14-1.c
> +++
> b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/14-1.c
> @@ -27,6 +27,7 @@ int main()
>  #define BUF_SIZE 111
>       char buf[BUF_SIZE];
>       int fd;
> +     int ret;
>       struct aiocb aiocb_write;
>       struct aiocb aiocb_fsync;
>  
> @@ -57,6 +58,15 @@ int main()
>               exit(PTS_FAIL);
>       }
>  
> +     do {
> +             usleep(10000);
> +             ret = aio_error(&aiocb_write);
> +     } while (ret == EINPROGRESS);
> +     if (ret < 0) {
> +             printf(TNAME " Error at aio_error() : %s\n",
> strerror(ret));
> +             exit(PTS_FAIL);
> +     }
> +
>       memset(&aiocb_fsync, 0, sizeof(aiocb_fsync));
>       aiocb_fsync.aio_fildes = fd;
>  
> 


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to