[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Schreibzugriff auf Module unter /lib/modules/



Hallo,

Simon Brandmair wrote:

> ich habe ein bißchen mit inotify rumgespielt und darüber jetzt
> festgestellt, dass z.B. beim Nachladen des Modules usbmouse schreibend auf
> Module zugegriffen wird:
> /lib/modules/2.6.18/kernel/drivers/usb/core/usbcore.ko CLOSE_WRITE,CLOSE

Ja, ist hier auch so.

> Mir fehlt es dabei etwas am Grundlagenwissen. Wieso muss beim Laden eines
> Modules mit Schreibrechten darauf zugegriffen werden? Ich wäre um jeden
> Hinweis dankbar.

Offenbar ist dieser Code aus 
module-init-tools-3.3-pre11/build-tree/module-init-tools-3.3-pre11/modprobe.c
dafür verantwortlich:

static int lock_file(const char *filename)
{
        int fd = open(filename, O_RDWR, 0);

        if (fd >= 0) {
                struct flock lock;
                lock.l_type = F_WRLCK;
                lock.l_whence = SEEK_SET;
                lock.l_start = 0;
                lock.l_len = 1;
                fcntl(fd, F_SETLKW, &lock);
        } else
                /* Read-only filesystem?  There goes locking... */
                fd = open(filename, O_RDONLY, 0);
        return fd;
}

Wenn ich das richtig verstehe, wird ein Write Lock auf das Modul
gesetzt, um zu verhindern, dass das Modul während des Ladens modifiziert
wird. Dafür muss wohl die Datei R/W geöffnet werden.

hth, Wolf
-- 
Mein Beitrag zur Gesundheit besteht in der regelmäßigen Aktualisierung des 
Patchlevels meines OS. (~til im Nurpel-Forum)



Reply to: