Re: file locking auf ufs

From: Christian Lackas <c.lackas(at)kfa-juelich.de>
Date: Fri, 29 Aug 2003 17:24:17 +0200

* Marc Santhoff <M.Santhoff(at)t-online.de> [030829 17:09]:

Hallo Marc,

> Ich wüßte gern, wie FreeBSD das Sperren von geöffneten Dateien handhabt.

file locking ist advisory (also freiwillig). Dafür gibt es fcntl(2),
flock(2), bzw. lockf(3). Das ganze beruht aber darauf, dass beide Seiten
diese Funktionen benutzen.

> Konkreter Fall: OpenOffice kann u.a. auch .CSV Dateien als
> Datenquelle einbinden.
> Wenn dort die Anzeige (lesender Zugriff) erfolgt, kann man, egal ob
> lokal oder via NFS, auch auf FreeBSD) die CSV-Datei mit einem Editor
> ändern.

Vermutlich lockt hier keiner von beiden die Datei.

> Unter (sorry) Windows geht das nicht. Lokal wird die Datei gesperrt,
> weil sie bereits geöffnet ist

Hier ist das locking mandatory (wird also vom System selbst
durchgesetzt).

> und via Samba (gleicher Server) kann man sie zwar ändern, die
> Änderungen werden aber nicht durchgereicht, d.h. sie werden nicht in
> OpenOffice angezeigt (fragt sich, was bei beidseitigen Änderungen
> passiert - fröstel).

SMB benutzt sogenanntest opportunistic locking (OpLock). Siehe hierzu
auch: http://www.oreilly.com/catalog/samba/chapter/book/ch05_05.html
Dabei werden die Daten gesperrt und gleichzeitig angemeldet, dass sie
lokal gecached werden.

Solange du nur über SMB auf die Daten änderst ist das kein Problem. Das
sorgt dann für die Einhaltung des Locks (auch wenn du von einem anderen
Rechner über SMB auf die Datei zugreifst).

Du hast jetzt aber vermutlich an SMB vorbei (lokal auf dem
FreeBSD-Server) geändert. Davon bekommst Samba dann nichts mit und es
hindert dich auch niemand daran. Schlimmer noch: Der Windows-Rechner
denkt, dass er die Datei exklusiv auf hat und fragt auch gar nicht mehr
beim Server nach, ob sich da was geändert hat, sondern benutzt nur die
lokal gecachete Version.

Dein Frösteln ist also berechtigt. IdR wird Samba dir die Datei im ganzen
oder in Teilen überschreiben, wenn der Windows-Client denkt es sei mal
wieder Zeit. Das kann zu einem kompletten Verlust der Daten in der Datei
führen...

Gruss
 Christian

-- 
Es läßt den Bauern gar nicht ruh'n, wenn die Hähne morgens muh'n.
http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 29 Aug 2003 - 17:25:25 CEST

search this site