Distribution: Fedora Core 2 Hardware Environment: Dell 1750 w Perc/DI Software Environment: duplicity (http://www.nongnu.org/duplicity/) Problem Description: I'm using duplicity to backup a cifs mount locally (remote server: Dell NAS 745 using Windows 2003 Appliance). After 4GB data transferred (over 100GB) i noticed six occurences of this missage in dmesg: Badness in sleep_on_timeout at kernel/sched.c:2528 [<02280591>] sleep_on_timeout+0x5d/0xb1 [<02115e26>] default_wake_function+0x0/0xc [<42ac9f97>] SendReceive+0x1c1/0x336 [cifs] [<42abc155>] CIFSFindFirst+0x1f0/0x278 [cifs] [<42ac5d4b>] cifs_readdir+0x27d/0xa60 [cifs] [<0214eb09>] filldir64+0x0/0x12e [<0214e7f6>] vfs_readdir+0x7a/0x9b [<0214eb09>] filldir64+0x0/0x12e [<0214ec9c>] sys_getdents64+0x65/0xaa [<0214dfa8>] generic_file_fcntl+0xd7/0x140 Steps to reproduce: -mount a cifs share over windows 2003 appliance -do duplicity-like file access (non linear reads, it reads an amount of data, compress/sign it, writes it locally, then read more data, etc...) -check dmesg
sleep_on_timeout is a deprecated (and broken) API that shouldn't be used in new code; however this seems to have been added recently to CIFS..... The warning in question is that sleep_on_timeout() is called without the BKL helt, which is invalid usage of that API.
I had not noticed this defect - will presumably simply need to change to wait_event_interruptible with timeout
I looked around and did not see a replacement for this function in include/linux/wait.h (uninterruptible wait on event with timeout). Is the best available way to remove this function to replace with schedule_timeout inside a loop checking if the event is satisfied?
Fixed long ago. Probably in the 2.6.9 merge.