From: Shuang Qiu <[email protected]>

When unlink() a file in nfs environment,it will rename the file to a
.nfs<xxxxx> file if any process still has that file open.And this file
could not be deleted until it is closed.So we always get the following
warning which makes testcase "dup07" failed:
0  TWARN  :  tst_rmdir: rmobj(/mnt/nfsv3/ltp-ZtzSE27611/dupKuEr3H)
failed:
unlink(/mnt/nfsv3/ltp-ZtzSE27611/dupKuEr3H/.nfs000000000110cb3800000066)
failed; errno=16: Device or resource busy

Close the created/dup file before unlink() it to fix this issue.

Signed-off-by: Shuang Qiu <[email protected]>
---
 testcases/kernel/syscalls/dup/dup07.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/testcases/kernel/syscalls/dup/dup07.c 
b/testcases/kernel/syscalls/dup/dup07.c
index 03b0ba4..19cd751 100644
--- a/testcases/kernel/syscalls/dup/dup07.c
+++ b/testcases/kernel/syscalls/dup/dup07.c
@@ -80,6 +80,10 @@ int main(int ac, char **av)
                        }
                }
 
+               if (duprdo != -1)
+                       close(duprdo);
+               if (rdoret != -1)
+                       close(rdoret);
                unlink(testfile);
                
                if ((wroret = creat(testfile, 0222)) == -1) {
@@ -100,6 +104,10 @@ int main(int ac, char **av)
                        }
                }
 
+               if (dupwro != -1)
+                       close(dupwro);
+               if (wroret != -1)
+                       close(wroret);
                unlink(testfile);
 
                if ((rdwret = creat(testfile, 0666)) == -1) {
@@ -120,6 +128,10 @@ int main(int ac, char **av)
                        }
                }
                
+               if (duprdwr != -1)
+                       close(duprdwr);
+               if (rdwret != -1)
+                       close(rdwret);
                unlink(testfile);
        }
 
-- 
1.7.7


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to