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

Re: Schreibzugriff auf Module unter /lib/modules/



Hi,

On Sun, 01 Jul 2007 15:20:08 +0200 Wolf Wiegand wrote:

> 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.

Super. Vielen Dank für die Antwort. Leuchtet mir ein, jetzt blicke ich
wenigstens etwas besser durch. (Y)

Cheers,
Simon



Reply to: