libnsm.a: Introduce common routines to handle persistent storage
authorChuck Lever <chuck.lever@oracle.com>
Tue, 12 Jan 2010 00:08:10 +0000 (19:08 -0500)
committerSteve Dickson <steved@redhat.com>
Tue, 12 Jan 2010 10:50:04 +0000 (05:50 -0500)
commitf16fb1cdc99fb1bd62767b133bec6358e7a793e1
tree26919c031614338516abad735d8f80af0ae687e5
parent917cd9a5532d90745d94045f49ee49d0a7636d6d
libnsm.a: Introduce common routines to handle persistent storage

rpc.statd and sm-notify access the same set of files under
/var/lib/nfs/statd, but both have their own code base to handle this.
They should share this code.

In addition, the on-disk format used by statd and friends is
considered a formal interface, so this new code will codify the API
and provide documentation for it.

The shared code handles switching from the default parent statd
directory, reducing privileges at start-up, and managing the NSM
state files, in addition to handling normal operations on the
monitored host and notification lists on disk.

The new code is simply a copy of the same logic that was used in
rpc.statd and sm-notify, but wrapped in a nice API.  There should be
minimal behavioral and no on-disk format changes with the new
libnsm.a code.

The new code is more careful to check for bad corner cases.
Occassionally this code may not allow an operation that was permitted
in the past, but hopefully the error reporting has improved enough
that it should be easy to track down any problems.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
support/include/Makefile.am
support/include/nsm.h [new file with mode: 0644]
support/nsm/Makefile.am
support/nsm/file.c [new file with mode: 0644]