z00t@gmx.net wrote: > Hi guys, > > I get the device busy error when I try to umount an NFS file system although there is no process with an open file on it (at least fuser -m /mnt/point and lsof +f -- /mnt/point don't find anything). > > To be more precise this only happens, when I run the umount right after stopping an application which has its executables and work directory on this file system. Running umount again some seconds later works fine. > > I do not have any submounts under this mount point. There are no packet transmit or receive errors nor any NFS/RPC errors only a very small number of RPC retransmitts. So it seems that I have a stable environment. Client and server is SLES9 with 2.6.5-7.202.7-smp/X86_64. > > I enabled NFS debug output and the only noticeable thing is, that some NFS operations are still ongoing after the application processes have already terminated: > > Aug 23 08:25:23 marvin kernel: NFS reply getattr > Aug 23 08:25:23 marvin kernel: NFS: nfs_update_inode(0:12/149296 ct=1 info=0x6) > Aug 23 08:25:23 marvin kernel: NFS: (0:12/149296) revalidation complete > Aug 23 08:25:23 marvin kernel: nfs: flush(0:12/149296) > Aug 23 08:25:23 marvin kernel: NFS: dentry_delete(bin/stop, 0) > Aug 23 08:25:23 marvin kernel: NFS: revalidating (0:12/2) > Aug 23 08:25:23 marvin kernel: NFS call getattr > Aug 23 08:25:23 marvin kernel: NFS reply getattr > Aug 23 08:25:23 marvin kernel: NFS: nfs_update_inode(0:12/2 ct=1 info=0x6) > Aug 23 08:25:23 marvin kernel: NFS: (0:12/2) revalidation complete > Aug 23 08:25:25 marvin kernel: NFS call fsstat > Aug 23 08:25:25 marvin kernel: NFS reply statfs: 0 > Aug 23 08:25:35 marvin kernel: NFS call fsstat > Aug 23 08:25:35 marvin kernel: NFS reply statfs: 0 > Aug 23 08:25:38 marvin kernel: NFS: 6368 initiated commit call > Aug 23 08:25:38 marvin kernel: NFS: 6369 initiated commit call > Aug 23 08:25:38 marvin kernel: NFS: 6370 initiated commit call > Aug 23 08:25:38 marvin kernel: NFS: 6371 initiated commit call > Aug 23 08:25:38 marvin kernel: NFS: 6368 nfs_commit_done (status 0) > Aug 23 08:25:38 marvin kernel: NFS: commit (0:12/121805 3207@0)NFS: dentry_delete(log/mux_marvin.trc, 0) > Aug 23 08:25:38 marvin kernel: OK > Aug 23 08:25:38 marvin kernel: NFS: 6369 nfs_commit_done (status 0) > Aug 23 08:25:38 marvin kernel: NFS: commit (0:12/149304 2238@0)NFS: dentry_delete(log/pw_marvin_1.trc, 0) > Aug 23 08:25:38 marvin kernel: OK > Aug 23 08:25:38 marvin kernel: NFS: 6370 nfs_commit_done (status 0) > Aug 23 08:25:38 marvin kernel: NFS: commit (0:12/149297 2238@0)NFS: dentry_delete(log/pw_marvin_0.trc, 0) > Aug 23 08:25:38 marvin kernel: OK > Aug 23 08:25:38 marvin kernel: NFS: 6371 nfs_commit_done (status 0) > Aug 23 08:25:38 marvin kernel: NFS: commit (0:12/149295 965@0)NFS: dentry_delete(net.trc, 0) > Aug 23 08:25:38 marvin kernel: OK > Aug 23 08:25:45 marvin kernel: NFS call fsstat > Aug 23 08:25:45 marvin kernel: NFS reply statfs: 0 > Aug 23 08:25:55 marvin kernel: NFS call fsstat > > When I run umount during these ops I get an device busy. Any help would be very appreciated! This is normal and expected behavior. One problem may be that your server is slow, and thus there are RPCs left outstanding for a bit on your client after your application exits. The COMMIT calls from that trace suggest that there is dirty data the client is writing back to the server.