From: Unangst, M. <mj...@pa...> - 2005-12-16 15:55:40
|
Several of the tests in testcases/kernel/fs leak file descriptors. This causes the tests to fail on networked filesystems that implement delete-on-last-close through silly-rename (i.e., NFS). Because one or more files are still open when the test calls tst_rmdir() to remove the tree, these files are silly-renamed when they are unlinked, and the "rm -rf" subsequently fails to remove the parent directory with a "directory not empty" error. This doesn't occur with local filesystems (i.e., ext3), since local filesystems are typically able to implement delete-on-last-close in a way that does not leave any entries in the parent directory. See the attached patch file for the diffs. In inode01 and inode02, I just added a missing fclose(). In stream03 and stream04, creat() was being used to create a file, but the return code from creat() (which is an open file descriptor!) was being dropped. The file is then opened with fopen(filename, "a+"), which creates the file if it doesn't exist, so I just removed the call to creat() entirely. Thanks! -- Marc Unangst (mj...@pa...) Software Architect, Panasas, Inc. Accelerating Time to Results(TM) with Clustered Storage |