Hi, I've spent the better part of three weeks tracking into this problem. I hope you don't mind a post here on smbfs, but I was hoping someone might have some insight or ideas on where to look next. Summary: trying to rsync folders across an smb mounted share with EXACTLY 50 objects (folder or files), results in the error rsync: readdir(.): Bad file descriptor (9) Details The problem seems to be related to the number of objects in a folder. The problem can very easily be re-created by creating 50 files in a samba share, and trying to rsync it to a FreeBSD 4.11 or Darwin box. # mount_smbfs -I [ipaddr w2k] '//Administrator@w2k/C$' /mnt # mkdir /mnt/dummy # cd /mnt/dummy # touch 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 # rsync -rn /mnt/dummy /var/tmp Error message building file list ... rsync: readdir(.): Bad file descriptor (9) The source of the error message is /usr/src/sys/netsmb/smb_rq.c Line 344 if (rqp->sr_vc->vc_hflags2 & SMB_FLAGS2_ERR_STATUS) { error = md_get_uint32le(mdp, &rqp->sr_error); } else { error = md_get_uint8(mdp, &rqp->sr_errclass); error = md_get_uint8(mdp, &tb); error = md_get_uint16le(mdp, &rqp->sr_serror); if (!error) rperror = smb_maperror(rqp->sr_errclass, rqp->sr_serror); I'm working through the netsmb source code, but it's slow going. I ran the above example on # uname -a FreeBSD 30.dhcp.hck.carroll.com 4.11-STABLE FreeBSD 4.11-STABLE #1: Tue Nov 1 22:15:50 EST 2005 jim@30.dhcp.hck.carroll.com:/usr/src/sys/compile/NC.DEBUG i386 We also ran it on a Darwin machine $ uname -a Darwin 94.dhcp.hck.carroll.com 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power Macintosh powerpc Both machines reported the same error. building file list ... rsync: readdir(.): Bad file descriptor (9) What's particularly interesting, is other utilities can successfully recurse into the directory without any problems. I've written a small command line utility that does opendir() readdir() lstat() which is basically what rsync does, I get no errors. I've gone over rsync with gdb, and can't find anything too unusual going on. Execpt for the fact that I can only create the problem using rsync. Any pointers, crazy ideas, off the wall theories, etc... would be greatly appreciated. --- Jim C. | Carroll-Net, Inc. 201-488-4092 | www.carroll.com | Application Service Provider