diff -ru samba-3.0.7.orig/source/client/smbmount.c samba-3.0.7/source/client/smbmount.c --- samba-3.0.7.orig/source/client/smbmount.c 2004-04-20 21:42:58.000000000 +0100 +++ samba-3.0.7/source/client/smbmount.c 2006-01-07 18:07:20.000000000 +0000 @@ -388,6 +388,9 @@ c = NULL; if (!closed) { + /* close the name cache so that close_our_files() doesn't steal its FD */ + namecache_shutdown(); + /* redirect stdout & stderr since we can't know that the library functions we use are using DEBUG. */ if ( (fd = open("/dev/null", O_WRONLY)) < 0) diff -ru samba-3.0.7.orig/source/lib/gencache.c samba-3.0.7/source/lib/gencache.c --- samba-3.0.7.orig/source/lib/gencache.c 2004-04-04 08:37:34.000000000 +0100 +++ samba-3.0.7/source/lib/gencache.c 2006-01-10 20:47:00.000000000 +0000 @@ -83,10 +83,13 @@ BOOL gencache_shutdown(void) { + int ret; /* tdb_close routine returns -1 on error */ if (!cache) return False; DEBUG(5, ("Closing cache file\n")); - return tdb_close(cache) != -1; + ret = tdb_close(cache); + cache = NULL; + return ret != -1; }