nfs problem

Florian Lohoff flo at rfc822.org
Mon Jun 7 00:46:10 CEST 1999


On Sat, Jun 05, 1999 at 05:56:01PM +0200, Andre Landwehr wrote:
> Hi,
> ich mounte mir /home per nfs von einer anderen Kiste (192.168.1.1). Hab
> als normaler User dort Lese- und auch Schreibrechte im jeweiligen Homedir.
> Mutt mag jetzt allerdings die Mailbox, die auch im Homedir liegt bei mir,
> nicht schreibbar öffnen. Ein strace des ganzen bringt u.a. folgende Zeile
> hervor:
> ----schnipp----
> fcntl(4, F_SETLK, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = -1 
> EACCES (Permission denied)
> ----schnapp----

Ich vermute das ist eine NFS Locking falle - Da das userspace
NFS von Linux KEIN locking unterstuetzt (flock/fcntl) muss
ein NFS Save lock mit einem sogenannten dotlock gemacht werden d.h.
man muss ueber eine Atomic operation auf dem server eine datei
erzeugen die klarstellt das die datei gelockt ist. Im Normalfall 
wird das wie folgt gemacht (singemaess)

wildfilename=strcat(pid,sysname,timestamp,a little garbage);
open(wildfilename,O_EXCL|O_RDWR);
close(wildfilename);

for(i=0;i<=4 && !rename(wildfilename,<filetolock>.lock);i++);
if (i==4) {
	fprintf(stderr, "Could not lock\n");
	exit(1);
}

> NFS-bezogenes Problem ist. Ich fahre Kernel 2.2.9 auf dem Client, 2.2.0

Ja ! 

> Meldung "lockd: Failed to monior 192.168.1.1" eingeblendet, was bisher
> allerdings nie gestört hat. 

Ahhh - probieren wir wohl mit dem knfsd rum ? :) Afaik kommt der user-space
nfsd OHNE lockd :)

> Hat jemand eine Idee? Was ist ein fcntl type=F_RDLCK eigentlich, öffnet
> der eine Datei zum lesen und setzt gleichzeitig ein lock darauf damit
> keiner was ändert während er liest?

Si - Er setzt einen Read-Lock damit er die Mailbox modifizieren kann
d.h. kein andere sie liest waerend mutt modifiziert.

Ich bin mir nicht ganz sicher wo jetzt das problem ist.
Es ist klar das locking ueber NFS nicht so trivial ist wie auf
einem Lokalen FileSystem. Mit dem Knfsd und modifikationen am Linux
NFS Client will man jetzt vollen locking mitbringen (lockd/statd) allerdings
ist das noch nicht so ausgereift.
Ich weiss im moment nicht was ein nfs client macht (result fcntl/flock)
wenn der server keinen lockd hat ...

Flo
-- 
Florian Lohoff		flo at rfc822.org		      	+49-5241-470566
Good, Fast, Cheap: Pick any two (you can't have all three).  (RFC 1925)



More information about the Linux mailing list