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>