From: Subrata <sub...@us...> - 2008-03-27 08:53:33
|
Update of /cvsroot/ltp/ltp/testcases/kernel/syscalls/vmsplice In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11106/ltp/testcases/kernel/syscalls/vmsplice Modified Files: vmsplice01.c Log Message: The vmsplice01 testcase in LTP failed when run over machines with NFS mount. However after I examined the test case I found that the testcase performs vmsplice() and splice() system calls and it was only splice() that caused the failure. After discussing with Subrata, we had decided that the fact that vmsplice() succeeds must be displayed before checking if the testcase is running over NFS and exiting. Hence I have prepared a patch with the above details taken care of. Signed-off-by : Vinay Sridhar <vin...@in...> Index: vmsplice01.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/vmsplice/vmsplice01.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** vmsplice01.c 25 Dec 2006 00:38:16 -0000 1.4 --- vmsplice01.c 27 Mar 2008 08:53:26 -0000 1.5 *************** *** 160,164 **** int pipes[2]; long written; ! int i, ret; int fd_out; struct iovec v; --- 160,164 ---- int pipes[2]; long written; ! int i, ret, flag = 0; int fd_out; struct iovec v; *************** *** 212,217 **** --- 212,228 ---- v.iov_base += written; v.iov_len -= written; + flag = 1; } + /* + * check if the current filesystem is nfs + */ + if(tst_is_cwd_nfs()) { + if (flag == 1) + printf("vmsplice01 1 PASS : vmplice() passes\n"); + tst_brkm(TCONF, cleanup, "Cannot do splice() on a file located on an NFS filesystem"); + } + + ret = mysplice(pipes[0], NULL, fd_out, &offset, written, 0); if (ret < 0) { *************** *** 221,225 **** close(pipes[1]); return ret; ! } //printf("offset = %lld\n", (long long)offset); --- 232,236 ---- close(pipes[1]); return ret; ! } //printf("offset = %lld\n", (long long)offset); |