Package: module-init-tools
Version: 3.3-pre4-2
Severity: important

When some process set read lock on kernel module file, modprobe cannot
load this module.

For example:

flock.c:
----------------------------------------------------------------------
#include <sys/file.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>


int main ( int argc, char ** argv ){
        struct flock fl;
        int fd = -1;

        printf("lock %s\n", argv[1]);

        fd = open( argv[1], O_RDONLY );
        if ( fd == -1 ){
                perror("Open: ");
                return errno;
        } else {
                printf ("Open ok, fd is %d\n", fd);
        }

        fl.l_type = F_RDLCK;
        fl.l_whence = SEEK_SET;
        fl.l_start = 0;
        fl.l_len = 1;


        if ( fcntl(fd, F_SETLK, &fl ) != 0 ){
                        perror("fcntl: ");
                        return errno;
        } else {
                printf("fd %d is locked %d\n", fd, f );
        }

        while( 1 ) {
                sleep(100);
                printf( "file is locked\n");
        }

        close(fd);

        return 0;
}
-----------------------------------------------------------------------

If this program running with command
$  ./flock /lib/modules/2.6.19/kernel/drivers/input/misc/pcspkr.ko

then command
# modprobe pcspkr

will not be completed.

#  strace modprobe pcspkr
[...]
fcntl64(3, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=1} 
<unfinished ...>


-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.19
Locale: LANG=be_BY.CP1251, LC_CTYPE=be_BY.CP1251 (charmap=CP1251)

Versions of packages module-init-tools depends on:
ii  libc6                       2.3.6.ds1-13 GNU C Library: Shared libraries
ii  lsb-base                    3.1-23.1     Linux Standard Base 3.1 init scrip

module-init-tools recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to