Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Oct 1995 13:39:09 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        current@freebsd.org
Subject:   *MORE* FS problems, please fix!
Message-ID:  <199510302039.NAA06584@phaeton.artisoft.com>

next in thread | raw e-mail | index | archive | help

Well, if I can't get patches committed, the least I can do is
complain about problems and hope someone else can get their possibly
identical patches committed instead.


The spotlight this time is on file locking.

The locking subsystem is *incorrectly* implementing locking via a
call to vn_* from the file system specific lock code.


The design says that the FS specific lock code is, in fact, advisory.

This means that the locking should be implemented at a higher layer
(in the system call implementations), and then the FS specific lock
code called if the lock is granted at the higher layer.

Basically, this means the for most file systems, the lock calls should
be simple success returns.

The exception is NFS, which must assert a lock remotely.

For file systems where the FS spcific locking code is non-null, a
failure return for the FS specific locking code means back off the
already granted lock at the higher level.

This has the decided advantage of causing the FS to not "go remote"
if a local conflict exists: a local conflict will result in a remote
conflict anyway.

It also means that FS layering is possible without afailure in the
lock case.  Currently, a lock asserted at one layer would cause a
failure on the assertion at a lower layer (worst case) or a duplicate
assertion (best case).

For remote file systems (DOS/NetWare/LanMan) where overlapping lock
regions are not coelesced, either one is fatal.


Whoever reimplements this change (my patches aren't "good enough")
should note that it will be about as large in scope as the patches
I already submitted for FS layering.  This means that you probably
don't stand a chance of success unless you have commit priveledges.


					Regards,
					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510302039.NAA06584>