On 07/01/2010 10:36 PM, Subrata Modak wrote: > Probably, you would need to fix these: > > patching file testcases/kernel/syscalls/open/open10.c > Hunk #1 FAILED at 282. > Hunk #2 FAILED at 311. > Hunk #3 FAILED at 359. > Hunk #4 FAILED at 389. > Hunk #5 FAILED at 440. > 5 out of 5 hunks FAILED -- saving rejects to file > testcases/kernel/syscalls/open/open10.c.rej > patching file testcases/kernel/syscalls/splice/splice02.c > patch: **** malformed patch at line 229: Passed"); > > Dear Subrata,
I downloaded the latest ltp from http://ltp.git.sourceforge.net/git/gitweb.cgi?p=ltp/ltp-dev.git;a=tree I used the "snapshot" to download the tgz and patched as following. The patch seems to apply correctly. [dars...@darsshah-tp ltp-dev]$ patch -p1 < ../../ltp-full-20091231/patches/close-open-fds.diff patching file testcases/kernel/syscalls/open/open10.c patching file testcases/kernel/syscalls/splice/splice02.c patching file testcases/kernel/io/direct_io/diotest2.c patching file testcases/kernel/io/direct_io/diotest3.c patching file testcases/kernel/io/direct_io/diotest5.c patching file testcases/kernel/io/direct_io/diotest6.c patching file testcases/kernel/mem/mmapstress/mmapstress02.c patching file testcases/kernel/mem/mmapstress/mmapstress01.c patching file testcases/kernel/mem/mmapstress/mmapstress05.c patching file testcases/kernel/mem/mmapstress/mmapstress10.c patching file testcases/kernel/syscalls/ppoll/ppoll01.c patching file testcases/kernel/syscalls/utimes/utimes01.c [dars...@darsshah-tp ltp-dev]$ If there is any other location from where I should take the ltp, please let me know. Thank you. > Regards-- > Subrata > (Refer to git://ltp.git.sourceforge.net/gitroot/ltp/ltp-dev) > > On Thu, 2010-07-01 at 17:35 +0530, Darshak Shah wrote: > >> Hi, >> >> While executing the ltp on an nfs root mounted system, I faced a problem >> with some of the ltp test cases. These tests either did not close their >> file descriptors or did no unmap the mmaped files. This results in a >> failures while trying to clean up the temporary directory of the testcase. >> >> Here are the failures I see. >> >> [dars...@darsshah-tp mcp61_ppcnf-197001010022]$ grep TWARN >> mcp61_ppcnf-197001010022.out |grep rmdir >> open10 0 TWARN : rmdir(open10.testdir.A.19588) failed: >> errno=???(39): Directory not empty >> open10 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/ope6m8CUb) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/ope6m8CUb/open10.testdir.B.19588/.nfs000000000011ef45000004b0) >> failed; errno=16: Device or resource busy >> ppoll01 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/ppo1xLQtp) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/ppo1xLQtp/.nfs000000000011ef4a000004b7) >> failed; errno=16: Device or resource busy >> splice02 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/splESzJrq) failed: >> remove(/tmp/ltp-yYmhzAq5ao/splESzJrq) failed; errno=39: Directory not empty >> utimes01 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/utia5lQ1w) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/utia5lQ1w/.nfs0000000000122f28000004ca) >> failed; errno=16: Device or resource busy >> diotest02 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/dioaaIAuQ) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/dioaaIAuQ/.nfs000000000011ef57000004d3) >> failed; errno=16: Device or resource busy >> diotest03 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/dioqfwc9n) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/dioqfwc9n/.nfs000000000011ef58000004d4) >> failed; errno=16: Device or resource busy >> diotest05 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/dioYf4Dai) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/dioYf4Dai/.nfs000000000011ef59000004d5) >> failed; errno=16: Device or resource busy >> diotest06 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/dioBzOOyB) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/dioBzOOyB/.nfs000000000011ef5a000004d8) >> failed; errno=16: Device or resource busy >> mmapstress01 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/mmaR0zAez) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/mmaR0zAez/.nfs000000000011ef6e000004f9) >> failed; errno=16: Device or resource busy >> mmapstress02 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/mmad84xcc) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/mmad84xcc/.nfs000000000011ef6f000004fa) >> failed; errno=16: Device or resource busy >> mmapstress05 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/mmaOrvt5a) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/mmaOrvt5a/.nfs000000000011ef70000004fc) >> failed; errno=16: Device or resource busy >> mmapstress10 0 TWARN : tst_rmdir(): >> rmobj(/tmp/ltp-yYmhzAq5ao/mmaBRE9gi) failed: >> unlink(/tmp/ltp-yYmhzAq5ao/mmaBRE9gi/.nfs000000000011ef71000004fe) >> failed; errno=16: Device or resource busy >> [dars...@darsshah-tp mcp61_ppcnf-197001010022]$ >> >> I have fixed all of the above tests with the following patch. >> >> Signed-off-by: Darshak P Shah<[email protected]> >> >> >> Index: ltp-full-20091231/testcases/kernel/syscalls/open/open10.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/syscalls/open/open10.c >> +++ ltp-full-20091231/testcases/kernel/syscalls/open/open10.c >> @@ -282,6 +282,7 @@ int main(int ac, char *av[]) >> tst_resm(TFAIL|TERRNO, "open(%s) failed", nosetgid_A); >> local_flag = FAILED; >> } >> + close(ret); >> >> if ((ret = stat(nosetgid_A,&buf))< 0) { >> tst_resm(TFAIL|TERRNO, "stat(%s) failed", nosetgid_A); >> @@ -310,6 +311,7 @@ int main(int ac, char *av[]) >> tst_resm(TFAIL|TERRNO, "open(%s) failed", setgid_A); >> local_flag = FAILED; >> } >> + close(ret); >> >> if ((ret = stat(setgid_A,&buf))< 0) { >> tst_resm(TFAIL|TERRNO, "stat(%s) failed", setgid_A); >> @@ -357,6 +359,7 @@ int main(int ac, char *av[]) >> tst_resm(TFAIL|TERRNO, "open(%s) failed", nosetgid_B); >> local_flag = FAILED; >> } >> + close(ret); >> >> if ((ret = stat(nosetgid_B,&buf))< 0) { >> tst_resm(TFAIL|TERRNO, "stat(%s) failed", nosetgid_B); >> @@ -386,6 +389,7 @@ int main(int ac, char *av[]) >> tst_resm(TFAIL|TERRNO, "open(%s) failed", setgid_B); >> local_flag = FAILED; >> } >> + close(ret); >> >> if ((ret = stat(setgid_B,&buf))< 0) { >> tst_resm(TFAIL|TERRNO, "stat(%s) failed", setgid_B); >> @@ -436,6 +440,7 @@ int main(int ac, char *av[]) >> tst_resm(TFAIL|TERRNO, "open(%s) failed", root_setgid_B); >> local_flag = FAILED; >> } >> + close(ret); >> >> if ((ret = stat(root_setgid_B,&buf))< 0) { >> tst_resm(TFAIL|TERRNO, "stat(%s) failed", root_setgid_B); >> Index: ltp-full-20091231/testcases/kernel/syscalls/splice/splice02.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/syscalls/splice/splice02.c >> +++ ltp-full-20091231/testcases/kernel/syscalls/splice/splice02.c >> @@ -148,6 +148,7 @@ int main(int ac, char **av) { >> } else >> if (TEST_RETURN == 0){ >> tst_resm(TPASS, "splice() system call >> Passed"); >> + close(fd); >> cleanup(); >> tst_exit(); >> } >> Index: ltp-full-20091231/testcases/kernel/io/direct_io/diotest2.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/io/direct_io/diotest2.c >> +++ ltp-full-20091231/testcases/kernel/io/direct_io/diotest2.c >> @@ -275,6 +275,7 @@ static void setup(void) >> if ((fd1 = open(filename, O_DIRECT, 0600))< 0) { >> tst_brkm(TCONF, cleanup, "O_DIRECT is not supported by this >> filesystem. %s", strerror(errno)); >> } >> + close(fd1); >> >> } >> >> Index: ltp-full-20091231/testcases/kernel/io/direct_io/diotest3.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/io/direct_io/diotest3.c >> +++ ltp-full-20091231/testcases/kernel/io/direct_io/diotest3.c >> @@ -363,6 +363,7 @@ static void setup(void) >> if ((fd1 = open(filename, O_DIRECT, 0600))< 0) { >> tst_brkm(TCONF, cleanup, "O_DIRECT is not supported by this >> filesystem. %s", strerror(errno)); >> } >> + close(fd1); >> } >> >> static void cleanup(void) >> Index: ltp-full-20091231/testcases/kernel/io/direct_io/diotest5.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/io/direct_io/diotest5.c >> +++ ltp-full-20091231/testcases/kernel/io/direct_io/diotest5.c >> @@ -309,6 +309,7 @@ static void setup(void) >> if ((fd1 = open(filename, O_DIRECT, 0600))< 0) { >> tst_brkm(TCONF, cleanup, "O_DIRECT is not supported by this >> filesystem. %s", strerror(errno)); >> } >> + close(fd1); >> } >> >> static void cleanup(void) >> Index: ltp-full-20091231/testcases/kernel/io/direct_io/diotest6.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/io/direct_io/diotest6.c >> +++ ltp-full-20091231/testcases/kernel/io/direct_io/diotest6.c >> @@ -387,6 +387,7 @@ static void setup(void) >> if ((fd1 = open(filename, O_DIRECT, 0600))< 0) { >> tst_brkm(TCONF, cleanup, "O_DIRECT is not supported by this >> filesystem. %s", strerror(errno)); >> } >> + close(fd1); >> } >> >> static void cleanup(void) >> Index: ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress02.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/mem/mmapstress/mmapstress02.c >> +++ ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress02.c >> @@ -165,6 +165,10 @@ main(int argc, char *argv[]) { >> CLEANERROR("close failed"); >> anyfail(); >> } >> + if (munmap(mmapaddr, pagesize) == -1) { >> + CLEANERROR("munmap failed"); >> + anyfail(); >> + } >> if (unlink(tmpname) == -1) { >> ERROR("unlink failed"); >> anyfail(); >> Index: ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress01.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/mem/mmapstress/mmapstress01.c >> +++ ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress01.c >> @@ -590,7 +590,11 @@ child_mapper(char *file, unsigned procno >> anyfail(); >> } >> } >> - >> + if (munmap(maddr, mapsize) == -1) { >> + perror("munmap failed"); >> + local_flag = FAILED; >> + anyfail(); >> + } >> exit(0); >> } >> >> @@ -694,6 +698,7 @@ fileokay(char *file, uchar_t *expbuf) >> } >> } >> } >> + close(fd); >> >> return 1; >> } >> Index: ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress05.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/mem/mmapstress/mmapstress05.c >> +++ ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress05.c >> @@ -61,6 +61,15 @@ void ok_exit(); >> #define ERROR(M) (void)fprintf(stderr, "%s: errno = %d; " M "\n", \ >> progname, errno); >> #define CLEAN (void)close(fd); \ >> + if (munmap(mmapaddr+pagesize, pagesize) == -1) { \ >> + ERROR("munmap failed"); \ >> + } \ >> + if (munmap(mmapaddr, pagesize) == -1) { \ >> + ERROR("munmap failed"); \ >> + } \ >> + if (munmap(mmapaddr+2*pagesize, pagesize) == -1) { \ >> + ERROR("munmap failed"); \ >> + } \ >> if (unlink(tmpname)) { \ >> ERROR("couldn't clean up temp file"); \ >> } >> Index: ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress10.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/mem/mmapstress/mmapstress10.c >> +++ ltp-full-20091231/testcases/kernel/mem/mmapstress/mmapstress10.c >> @@ -154,6 +154,15 @@ unsigned do_offset = 0; >> unsigned pattern = 0; >> char filename[64]; >> >> +void clean_mapper(int sig); >> +void clean_writer(int sig); >> + >> +int fd_mapper = 0; >> +caddr_t maddr_mapper; >> +size_t mapsize_mapper; >> + >> +int fd_writer = 0; >> + >> int >> main(int argc, char *argv[]) >> { >> @@ -484,8 +493,8 @@ main(int argc, char *argv[]) >> >> cleanup: >> for (i = 0; i< nprocs; i++) >> - (void)kill(pidarray[i], SIGKILL); >> - (void)kill(wr_pid, SIGKILL); >> + (void)kill(pidarray[i], SIGUSR1); >> + (void)kill(wr_pid, SIGUSR1); >> >> while (wait(&wait_stat) != -1 || errno != ECHILD) >> continue; >> @@ -531,9 +540,7 @@ child_mapper(char *file, unsigned procno >> off_t offset; >> #endif /* LARGE_FILE */ >> size_t validsize; >> - size_t mapsize; >> - caddr_t maddr, paddr; >> - int fd; >> + caddr_t paddr; >> int pagesize = sysconf(_SC_PAGE_SIZE); >> unsigned randpage; >> unsigned int seed; >> @@ -542,25 +549,38 @@ child_mapper(char *file, unsigned procno >> unsigned mappages; >> unsigned mapflags; >> unsigned i; >> + struct sigaction sa_mapper; >> >> mapflags = MAP_SHARED; >> >> seed = initrand(); /* initialize random seed */ >> >> + sa_mapper.sa_handler = clean_mapper; >> + sa_mapper.sa_flags = 0; >> + if (sigemptyset(&sa_mapper.sa_mask)) { >> + perror("sigempty error"); >> + anyfail(); >> + } >> + >> + if (sigaction(SIGUSR1,&sa_mapper, 0) == -1) { >> + perror("sigaction error SIGUSR1"); >> + anyfail(); >> + } >> + >> >> #ifdef LARGE_FILE >> - if ((fd = open64(file, O_RDWR)) == -1) { >> + if ((fd_mapper = open64(file, O_RDWR)) == -1) { >> #else /* LARGE_FILE */ >> - if ((fd = open(file, O_RDWR)) == -1) { >> + if ((fd_mapper = open(file, O_RDWR)) == -1) { >> #endif /* LARGE_FILE */ >> perror("open error"); >> anyfail(); >> } >> >> #ifdef LARGE_FILE >> - if (fstat64(fd,&statbuf) == -1) { >> + if (fstat64(fd_mapper,&statbuf) == -1) { >> #else /* LARGE_FILE */ >> - if (fstat(fd,&statbuf) == -1) { >> + if (fstat(fd_mapper,&statbuf) == -1) { >> #endif /* LARGE_FILE */ >> perror("stat error"); >> anyfail(); >> @@ -571,29 +591,29 @@ child_mapper(char *file, unsigned procno >> fprintf(stderr, "size_t overflow when setting up map\n"); >> anyfail(); >> } >> - mapsize = (size_t)(statbuf.st_size - sparseoffset); >> - mappages = roundup(mapsize, pagesize) / pagesize; >> + mapsize_mapper = (size_t)(statbuf.st_size - sparseoffset); >> + mappages = roundup(mapsize_mapper, pagesize) / pagesize; >> offset = sparseoffset; >> if (do_offset) { >> int pageoffset = lrand48() % mappages; >> int byteoffset = pageoffset * pagesize; >> offset += byteoffset; >> - mapsize -= byteoffset; >> + mapsize_mapper -= byteoffset; >> mappages -= pageoffset; >> } >> >> #ifdef LARGE_FILE >> - if ((maddr = mmap64(0, mapsize, PROT_READ|PROT_WRITE, >> - mapflags, fd, offset)) == (caddr_t)-1) { >> + if ((maddr_mapper = mmap64(0, mapsize_mapper, PROT_READ|PROT_WRITE, >> + mapflags, fd_mapper, offset)) == (caddr_t)-1) { >> #else /* LARGE_FILE */ >> - if ((maddr = mmap(0, mapsize, PROT_READ|PROT_WRITE, >> - mapflags, fd, offset)) == (caddr_t)-1) { >> + if ((maddr_mapper = mmap(0, mapsize_mapper, PROT_READ|PROT_WRITE, >> + mapflags, fd_mapper, offset)) == (caddr_t)-1) { >> #endif /* LARGE_FILE */ >> perror("mmap error"); >> anyfail(); >> } >> >> - (void)close(fd); >> + (void)close(fd_mapper); >> >> nloops = (randloops) ? (lrand48() % MAXLOOPS) : MAXLOOPS; >> >> @@ -601,12 +621,12 @@ child_mapper(char *file, unsigned procno >> #ifdef LARGE_FILE >> (void)printf("child %d (pid %ld): seed %d, fsize %Ld, " >> "mapsize %d, off %Ld, loop %d\n", >> - procno, getpid(), seed, filesize, mapsize, >> + procno, getpid(), seed, filesize, mapsize_mapper, >> offset/pagesize, nloops); >> #else /* LARGE_FILE */ >> (void)printf("child %d (pid %d): seed %d, fsize %ld, " >> "mapsize %ld, off %ld, loop %d\n", >> - procno, getpid(), seed, filesize, (long)mapsize, >> + procno, getpid(), seed, filesize, (long)mapsize_mapper, >> offset/pagesize, nloops); >> #endif /* LARGE_FILE */ >> } >> @@ -616,13 +636,13 @@ child_mapper(char *file, unsigned procno >> */ >> for (loopcnt = 0; loopcnt< nloops; loopcnt++) { >> randpage = lrand48() % mappages; >> - paddr = maddr + (randpage * pagesize); /* page address */ >> + paddr = maddr_mapper + (randpage * pagesize); /* page >> address */ >> >> if (randpage< mappages - 1 >> - || !(mapsize % pagesize)) >> + || !(mapsize_mapper % pagesize)) >> validsize = pagesize; >> else >> - validsize = mapsize % pagesize; >> + validsize = mapsize_mapper % pagesize; >> >> /* >> * Because one child is mapping file in extend mode, >> @@ -652,14 +672,17 @@ child_mapper(char *file, unsigned procno >> * Exercise msync() as well! >> */ >> randpage = lrand48() % mappages; >> - paddr = maddr + (randpage * pagesize); /* page address */ >> + paddr = maddr_mapper + (randpage * pagesize); /* page >> address */ >> if (msync(paddr, (mappages - randpage)*pagesize, >> MS_SYNC) == -1) { >> perror("msync error"); >> anyfail(); >> } >> } >> - >> + if ( munmap(maddr_mapper,mapsize_mapper) == -1 ) { >> + perror("munmap failed"); >> + anyfail(); >> + } >> exit(0); >> } >> >> @@ -675,7 +698,20 @@ child_mapper(char *file, unsigned procno >> void >> child_writer(char *file, uchar_t *buf) /* buf already set up in main */ >> { >> - int fd; >> + struct sigaction sa_writer; >> + >> + sa_writer.sa_handler = clean_writer; >> + sa_writer.sa_flags = 0; >> + if (sigemptyset(&sa_writer.sa_mask)) { >> + perror("sigempty error"); >> + anyfail(); >> + } >> + >> + if (sigaction(SIGUSR1,&sa_writer, 0) == -1) { >> + perror("sigaction error SIGUSR1"); >> + anyfail(); >> + } >> + >> #ifdef LARGE_FILE >> struct stat64 statbuf; >> off64_t off; >> @@ -688,18 +724,18 @@ child_writer(char *file, uchar_t *buf) / >> int cnt; >> >> #ifdef LARGE_FILE >> - if ((fd = open64(file, O_RDWR)) == -1) { >> + if ((fd_writer = open64(file, O_RDWR)) == -1) { >> #else /* LARGE_FILE */ >> - if ((fd = open(file, O_RDWR)) == -1) { >> + if ((fd_writer = open(file, O_RDWR)) == -1) { >> #endif /* LARGE_FILE */ >> perror("open error"); >> anyfail(); >> } >> >> #ifdef LARGE_FILE >> - if ((off = lseek64(fd, 0, SEEK_END)) == -1) { >> + if ((off = lseek64(fd_writer, 0, SEEK_END)) == -1) { >> #else /* LARGE_FILE */ >> - if ((off = lseek(fd, 0, SEEK_END)) == -1) { >> + if ((off = lseek(fd_writer, 0, SEEK_END)) == -1) { >> #endif /* LARGE_FILE */ >> perror("lseek error"); >> anyfail(); >> @@ -708,9 +744,9 @@ child_writer(char *file, uchar_t *buf) / >> >> for (;;) { >> #ifdef LARGE_FILE >> - if (fstat64(fd,&statbuf) == -1) { >> + if (fstat64(fd_writer,&statbuf) == -1) { >> #else /* LARGE_FILE */ >> - if (fstat(fd,&statbuf) == -1) { >> + if (fstat(fd_writer,&statbuf) == -1) { >> #endif /* LARGE_FILE */ >> perror("fstat error"); >> anyfail(); >> @@ -734,7 +770,7 @@ child_writer(char *file, uchar_t *buf) / >> >> p = buf + (off % pagesize); >> >> - if ((cnt = write(fd, p, growsize)) != growsize) { >> + if ((cnt = write(fd_writer, p, growsize)) != growsize) { >> if (cnt == -1) >> perror("write error"); >> else >> @@ -747,12 +783,13 @@ child_writer(char *file, uchar_t *buf) / >> >> (void)sleep(sleeptime); >> if (dosync) { >> - if (fsync(fd) == -1) { >> + if (fsync(fd_writer) == -1) { >> perror("fsync error"); >> anyfail(); >> } >> } >> } >> + close(fd_writer); >> } >> >> >> @@ -814,6 +851,7 @@ fileokay(char *file, uchar_t *expbuf) >> cnt = read(fd, (char *)readbuf, pagesize); >> if (cnt == -1) { >> perror("read error"); >> + close(fd); >> return 0; >> } else if (cnt != pagesize) { >> /* >> @@ -822,6 +860,7 @@ fileokay(char *file, uchar_t *expbuf) >> if ((i * pagesize) + cnt != mapsize) { >> (void)fprintf(stderr, "read %d of %ld bytes\n", >> (i*pagesize)+cnt, (long)mapsize); >> + close(fd); >> return 0; >> } >> } >> @@ -841,6 +880,7 @@ fileokay(char *file, uchar_t *expbuf) >> (void)fprintf(stderr, ", pg %d off %d, " >> "(fsize %ld)\n", i, j, statbuf.st_size); >> #endif /* LARGE_FILE */ >> + close(fd); >> return 0; >> } >> } >> @@ -866,6 +906,21 @@ clean_up_file(int sig) >> exit(1); >> } >> >> +void clean_mapper(int sig) >> +{ >> + if (fd_mapper) >> + close(fd_mapper); >> + munmap(maddr_mapper,mapsize_mapper); >> + exit (0); >> +} >> + >> +void clean_writer(int sig) >> +{ >> + if (fd_writer) >> + close(fd_writer); >> + exit(0); >> +} >> + >> unsigned int >> initrand(void) >> { >> @@ -887,7 +942,6 @@ initrand(void) >> return (seed); >> } >> >> - >> /***** LTP Port *****/ >> void ok_exit() >> { >> Index: ltp-full-20091231/testcases/kernel/syscalls/ppoll/ppoll01.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/syscalls/ppoll/ppoll01.c >> +++ ltp-full-20091231/testcases/kernel/syscalls/ppoll/ppoll01.c >> @@ -378,8 +378,10 @@ static int do_test(struct test_case *tc) >> } >> result |= (sys_errno != tc->err) || !cmp_ok; >> PRINT_RESULT_CMP(sys_ret>= 0, tc->ret, tc->err, sys_ret, >> sys_errno, cmp_ok); >> - cleanup: if (fd>= 0) >> + cleanup: if (fd>= 0) { >> + close(fd); >> cleanup_file(fpath); >> + } >> >> sigemptyset(&sigmask); >> sigprocmask(SIG_SETMASK,&sigmask, NULL); >> Index: ltp-full-20091231/testcases/kernel/syscalls/utimes/utimes01.c >> =================================================================== >> --- ltp-full-20091231.orig/testcases/kernel/syscalls/utimes/utimes01.c >> +++ ltp-full-20091231/testcases/kernel/syscalls/utimes/utimes01.c >> @@ -234,6 +234,8 @@ static int do_test(struct test_case *tc) >> TEST(rc = setup_file(TESTDIR, "test.file", fpath)); >> if (rc< 0) >> return 1; >> + /* The test just needs the file, so no need to keep it open. */ >> + close(rc); >> >> /* >> * Change effective user id >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> Ltp-list mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/ltp-list >> > ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
