Commit Graph

47 Commits

Author SHA1 Message Date
Alfred Perlstein
4b4ec9b800 Fix boundry condition in lock management:
Alfred, I took a look at retry_blockingfilelocklist() and the
 solution seemed  simple enough. Please correct me if I am wrong.
 It seems said routine doesn't  take into account boundary conditions
 when putting back file_lock entries into the blocked lock-list.
 Specifically, it fails when the file_lock being put back is the
 last element in the list, and when it is the only element in the
 list.  I've included a patch below.

 Basically, it introduces another variable: pfl, which keeps track
 of the list  item before ifl. That way if nfl is NULL, ifl gets
 inserted after pfl. If pfl  is also NULL, then it gets inserted
 at the head of the list (since it was the  only element in the
 list).

Submitted by: Mike Makonnen <mike_makonnen@yahoo.com>
Tested by: Thomas Quinot <thomas@cuivre.fr.eu.org>
2002-01-17 00:12:05 +00:00
Alfred Perlstein
815ac49626 prototype functions and fix some line wrapping 2001-12-02 11:10:46 +00:00
Alfred Perlstein
8c7daee735 Fold ANDREW_LOCKD into -current. 2001-11-29 17:36:45 +00:00
Alfred Perlstein
5f07c7b294 This completes the all partial file locking under NFS. The underlying
file is still completely covered by a flock(2) style lock, but we'll tackle
that at a later date.

Submitted by: "Andrew P. Lentvorski" <bsder@allcaps.org>
2001-11-20 06:13:53 +00:00
Alfred Perlstein
b6dc41baf1 Cleanup.
use LIST_FOREACH,

add prototypes (functions should be made static probably),

change DEBUG=1 to LOCKD_DEBUG,

K&R function instantiation for functions with long args lists,

Move comments about functions from within to above the function,

Simplified some if/else logic and reduced nested blocks.

parens around 'return' argument (return FOO -> return (FOO))
2001-11-18 05:08:19 +00:00
Alfred Perlstein
a4a8a04d08 Re-enable statd code.
Submitted by: "Andrew P. Lentvorski" <bsder@allcaps.org>
2001-11-18 03:50:38 +00:00
Alfred Perlstein
7e589b0b6e This adds in the full HW locking capability and should now make my rewrite
of the rpc.lockd fully compliant with the old file locking semantics.

Andrew will dig into the statd code next and then will attack the split
locking.

This also backs out a lot of the work I've done on making the code
more conformant with non-written style rules, but we'll revisit that
later.

Submitted by: "Andrew P. Lentvorski" <bsder@allcaps.org>
2001-11-18 00:41:15 +00:00
Alfred Perlstein
4945c13244 Bring in Andrew P. Lentvorski initial work on making lockd work,
this should get us closer so cleaner implementation.

Submitted by: Andrew P. Lentvorski <bsder@allcaps.org>
2001-11-15 09:35:51 +00:00
Alfred Perlstein
2663693cf8 Turn on NO_WERROR and set WARNS to 1.
Fix the WARNS 1 warnings except unused variables.

Add prototype for log_netobj().
Don't compare signed/unsigned.
Cast u_int64_t to 'unsigned long long' and print using %llu.
Fix constness of string arrays.
Use a cast to avoid an unused parameter in a signal handler.
alarm(2) can't fail, so don't check for it.
ANSI'ify some functions.
2001-11-13 11:24:23 +00:00
Alfred Perlstein
a95a0d36d4 fix parameters to lock_answer().
Submitted by: Timo Geusch <freebsd@unix-consult.com>
2001-11-12 16:34:59 +00:00
Alfred Perlstein
755f5b77d8 Fixup for WARNS. 2001-11-12 16:29:45 +00:00
Alfred Perlstein
32e9a24903 Drop privs while servicing kernel lock requests.
Restore umask used before FIFO creation.
If opening the FIFO fails, exit.
Properly check the return value of open (use == -1 instead of < 0).
2001-11-11 23:40:10 +00:00
Alfred Perlstein
64b829d192 leverage fixed fifo implementation (rev 1.56 of
src/sys/fs/fifofs/fifo_vnops.c) to serve locks better, my previous
workaround for lack of decent fifo system wasn't cutting it,
particularly the kernel would send a message down the fifo and
immediately close it, this would lead to delayed unlock requests
being seen by the lockd causing all sorts of badness.

Basically, don't reopen the fifo, just select(2) on it.
2001-11-08 10:37:32 +00:00
Alfred Perlstein
9529c2d965 use syslog rather than printf so we can see what's going on in debug mode 2001-11-08 10:34:21 +00:00
Alfred Perlstein
955e10567c style fixes, fix line wrap and function declaration 2001-11-08 10:33:41 +00:00
Alfred Perlstein
bad584e319 Implement partial-file NFS lock testing.
Submitted by: "Andrew P. Lentvorski" <andrewl@io.com>
2001-10-14 18:36:35 +00:00
Peter Wemm
9119623471 Userland part of nfs client/server split and cleanup. 2001-09-18 23:34:44 +00:00
David E. O'Brien
90e655ea4e Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
Alfred Perlstein
c20e578f5a Distinguish between rpc version numbers in the client cache to avoid
replying on the wrong port.
2001-04-28 04:26:32 +00:00
Alfred Perlstein
de72020ec1 handles.c belonged to the old stub lockd, nuke it. 2001-04-28 02:19:15 +00:00
Alfred Perlstein
622d8a963c procs.c belonged to the old stub lockd, nuke it. 2001-04-28 02:17:33 +00:00
Ruslan Ermilov
ed7948b630 mdoc(7) police: Removed forgotten .Pp. 2001-04-27 10:18:22 +00:00
Alfred Perlstein
5f8568ec81 Fix compiling without -O, some dead code was using non-existant functions,
make the code not automatically dead but actually use the debug level
in order to determine if output is needed.  Fix non-existant from_addr()
by #define'ing it to inet_ntoa().

Remove hardcoded -g from Makefile.

Reported by: "John W. De Boskey" <jwd@bsdwins.com>
Tested by: "John W. De Boskey" <jwd@bsdwins.com>
2001-04-25 18:40:38 +00:00
Alfred Perlstein
3455a26dc3 Remove section from bugs that says we don't support client locks.
Pointed out by: Martin Blapp <mb@imp.ch>
2001-04-19 12:29:43 +00:00
Alfred Perlstein
b863595d52 remove debug code left in by accident 2001-04-18 21:41:27 +00:00
Alfred Perlstein
603c86672c Implement client side NFS locks.
Obtained from: BSD/os
Import Ok'd by: mckusick, jkh, motd on builder.freebsd.org
2001-04-17 20:45:23 +00:00
Ruslan Ermilov
345e52e742 - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
Ruslan Ermilov
c73e22c3d4 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
Alfred Perlstein
8360efbd6c Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and
associated changes that had to happen to make this possible as well as
bugs fixed along the way.

  Bring in required TLI library routines to support this.

  Since we don't support TLI we've essentially copied what NetBSD
  has done, adding a thin layer to emulate direct the TLI calls
  into BSD socket calls.

  This is mostly from Sun's tirpc release that was made in 1994,
  however some fixes were backported from the 1999 release (supposedly
  only made available after this porting effort was underway).

  The submitter has agreed to continue on and bring us up to the
  1999 release.

  Several key features are introduced with this update:
    Client calls are thread safe. (1999 code has server side thread
    safe)
    Updated, a more modern interface.

  Many userland updates were done to bring the code up to par with
  the recent RPC API.

  There is an update to the pthreads library, a function
  pthread_main_np() was added to emulate a function of Sun's threads
  library.

  While we're at it, bring in NetBSD's lockd, it's been far too
  long of a wait.

  New rpcbind(8) replaces portmap(8) (supporting communication over
  an authenticated Unix-domain socket, and by default only allowing
  set and unset requests over that channel). It's much more secure
  than the old portmapper.

  Umount(8), mountd(8), mount_nfs(8), nfsd(8) have also been upgraded
  to support TI-RPC and to support IPV6.

  Umount(8) is also fixed to unmount pathnames longer than 80 chars,
  which are currently truncated by the Kernel statfs structure.

Submitted by: Martin Blapp <mb@imp.ch>
Manpage review: ru
Secure RPC implemented by: wpaul
2001-03-19 12:50:13 +00:00
Ruslan Ermilov
e97407b4f2 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 20:10:44 +00:00
Ruslan Ermilov
b5c508fba3 Use Fx macro wherever possible. 2000-11-14 11:20:58 +00:00
Kris Kennaway
ed9ee320b0 Don't call syslog() without a format string. 2000-07-12 00:50:49 +00:00
Peter Wemm
97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
Nik Clayton
414a35e60a Add $Id$, to make it simpler for members of the translation teams to
track.

The Id line is normally at the bottom of the main comment block in the
man page, separated from the rest of the manpage by an empty comment,
like so;

     .\"    $Id$
     .\"

If the immediately preceding comment is a @(#) format ID marker than the
the $Id$ will line up underneath it with no intervening blank lines.
Otherwise, an additional blank line is inserted.

Approved by:            bde
1999-07-12 20:12:29 +00:00
Bruce Evans
930ef4e26d Removed bogus dependencies of generated .c files on generated headers. 1998-05-10 16:03:17 +00:00
Bruce Evans
f6a23c4c2c Fixed `make -jN' for large N, as usual. 1998-03-06 14:34:47 +00:00
Philippe Charnier
df82e9ba02 Use err(3). Add usage() and #includes. 1997-10-13 11:13:33 +00:00
Satoshi Asami
0108cee1bd Typo fix: ${.DESTDIR} -> ${DESTDIR}.
Reviewed by:	bde
1997-05-23 08:43:27 +00:00
Bruce Evans
5455a8224b Fixed type mismatch caused by bogus prototypes. rpcgen for some reason
doesn't generate any prototypes for the functions to be registered.
1997-04-15 16:18:57 +00:00
Mike Pritchard
4b0eb76dc9 Typo police.
Partially obtained from: NetBSD PR# 3333
1997-03-16 07:12:20 +00:00
Peter Wemm
476602a9d0 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
Wolfram Schneider
bfd34a4a60 Sort cross references. 1997-01-20 00:03:00 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Peter Wemm
28c28b06ed rpc.rstatd -> rpc.lockd typo
Noticed by: tholo@sigmasoft.com (Thorsten Lockert)
1996-08-16 09:44:40 +00:00
Mike Pritchard
761111c767 Correct the rpc.lockd and rpc.statd man pages to not reference
their path names in the synopsis line (especially since they
referenced the wrong path!).  Corrected some other minor problems
with the rpc.lockd man page.
1996-04-07 08:55:32 +00:00
Peter Wemm
ce81d24b05 Tweaks for the stub lockd.
- Use rpcgen to generate the unmodified boilerplate code rather than
  having it in the repository.
- Eliminate the conflicting function names by changing them to their
  "natural" rpcgen generated names
1996-04-01 05:30:04 +00:00
Peter Wemm
503d2aa8a2 Import Jan 15 version of Andrew Gordon <andrew.gordon@net-tel.co.uk>'s
stub lockd.

This implements just the protocol, but does not interact with the kernel.
It says "Yes!" to all requests.  This is useful if you have people using
tools that do locking for no reason (eg: some PC NFS systems running some
Microsoft products) and will happily report they couldn't lock the file
and merrily proceed anyway.  Running this will not change the reliability of
sharing files, it'll just keep it out of everybody's face.
1996-02-17 15:11:29 +00:00