Commit Graph

22 Commits

Author SHA1 Message Date
dholland
63ecc36207 duh, forgot to cvs add 2012-01-25 21:11:45 +00:00
dholland
a9927e3f0e Add a preliminary man page for libquota. 2012-01-25 17:45:13 +00:00
dholland
fa577c93e1 Improve how quota_open() works and generally improve function
dispatching. Allow access to the quota files via the oldfiles code if
quotaon hasn't run yet. Change the latter so it calls getfsent() up
front (and only once) to make it easier to avoid whacking caller
state.
2012-01-25 17:43:37 +00:00
dholland
92d1ae00da Move some more stuff technically specific to the proplib kernel
interface into the source file for using the proplib kernel interface.
2012-01-25 01:22:56 +00:00
dholland
84ed28bf40 Implement quota_put and quota_delete for the fallback direct file
access backend.
2012-01-09 15:45:19 +00:00
dholland
583f7defcf Implement quota_put() and quota_delete() using code from edquota(8). 2012-01-09 15:43:19 +00:00
dholland
8d70e807c3 Implement fallback direct access to quota1-type quota files.
Uses (mostly) code from repquota. Add some missing pieces that
weren't in repquota.

Use the direct file access code for cursors if proplib reports the
quota version is 1.
2012-01-09 15:41:58 +00:00
dholland
857bee05cd Implement the libquota cursor interface, using proplib code from repquota. 2012-01-09 15:40:10 +00:00
dholland
22363307c5 Implement the schema-related functions, using proplib code from
/usr/bin/quota.
2012-01-09 15:34:34 +00:00
dholland
fa6b6291ec Handle default ID case in quota_get(), based on logic found in
/usr/bin/quota.
2012-01-09 15:32:38 +00:00
dholland
9f8b8c04bd Redo getfsquota() and getnfsquota() using the new API.
Change the previous getufsquota() to __quota_getquota() and call it
from all three functions: getfsquota(), getufsquota(), and getnfsquota().
2012-01-09 15:31:11 +00:00
dholland
2957f1ccb8 Add quota_nfs.c and implement quota_get() for nfs, using
code from getnfsquota().

Also implement quota_getmountdevice().
2012-01-09 15:29:55 +00:00
dholland
2ff48b73e6 Rework getufsquota() in terms of the new quota API. 2012-01-09 15:28:31 +00:00
dholland
8d8965ace0 Add initial versions of quota_open(), quota_close(), quota_get(),
calling proplib code mostly taken from getufsquota().

Correct the proplib refcount handling in the code from getufsquota(),
where it was (as far as I can tell) wrong.

Avoid doing illegal and unsafe casts from (struct quotaval *)
to (uint64_t *).
2012-01-09 15:27:04 +00:00
dholland
e15d192c7f Bump minor version of libquota.so. 2012-01-09 15:24:37 +00:00
dholland
bb96a16625 Add stub entry points of the entire new quota interface. These fail or
do nothing for the time being; however, putting them all in up front
avoids the need to do multiple bumps of the libquota.so version.
2012-01-09 15:22:38 +00:00
dholland
51d1d7e7c4 Rename struct ufs_quota_entry -> struct quotaval. 2011-11-25 16:55:05 +00:00
dholland
c60360c18d Reshuffle decls among the quota headers so everything is in the place
it should be:
   - stuff for the proplib interface goes in <quota/quotaprop.h>
   - stuff for userlevel only goes in <quota/quota.h>
   - stuff shared between user and kernel goes in <sys/quota.h>

Note that <quota/quota.h> and <quota/quotaprop.h> are expected to be
moved or removed later on... one thing at a time.

Update include directives in other files as needed.
2011-11-20 21:43:34 +00:00
jym
afca4e3b49 Fix an implementation inconsistency with the prop_*_send_syscall() and
prop_*_recv_syscall() functions from proplib(3). They now share the
same logic as the one from prop_*_send_ioctl() functions:
- returns an int
- 0 indicates "no error", otherwise returns the error number (and
set errno)

Many consumers of the prop_*_{ioctl, syscall} expect errno to be set
on error and use err() to display the error message. As such, ensures that
errno gets set before returning from these functions.

prop_*_send_syscall() functions returned a boolean, and now return an int.
Fix all call sites to use the new paradigm (only quota2 is affected in src).

As the prop_*_{send,recv}_syscall() API appeared in -current and is only
used by the recent quota2 code, I am not bumping the lib. The API change
only affects the prop_*_send_syscall() function (recv_syscall()s were
already used correctly), so ensure you are not mixing "old" -current
quota binaries with a new proplib(3) (or the other way around). This
change will be announced via a HEADS-UP and UPDATING.

Does not affect the kernel part of proplib.

Document the correct API in prop_array(3) and prop_dictionary(3).

Thanks to Francois Tigeot for noticing the API inconsistency and
reporting it on tech-kern@.

ok bouyer@.
2011-09-30 22:08:18 +00:00
plunky
87d4f6076b Apply casts to cases where xdrproc_t is expected but is not
strictly passed, for example because the second argument is
a different kind of pointer.
2011-08-30 17:06:20 +00:00
bouyer
a3a7248ce7 Fix bad cut'n'paste in copyright. Pointed out by dyoung@ 2011-06-07 14:56:12 +00:00
bouyer
d9210c2405 Add a new libquota library, which contains some blocks to build and/or
parse quota plists; as well as a getfsquota() function to retrieve quotas
for a single id from a single filesystem (whatever filesystem this is:
a local quota-enabled fs or NFS). This is build on functions getufsquota()
(for local filesystems with UFS-like quotas) and getnfsquota();
which are also available to userland programs.
move functions from quota2_subr.c to libquota or libprop as appropriate,
and ajust in-tree quota tools.
move some declarations from kernel headers to either sys/quota.h or
quota/quota.h as appropriate. ufs/ufs/quota.h still installed because
it's needed by other installed ufs headers.
ufs/ufs/quota1.h still installed as a quick&dirty way to get a code
using the old quotactl() to compile (just include ufs/ufs/quota1.h instead of
ufs/ufs/quota.h - old code won't compile without this change and this is
on purpose).
Discussed on tech-kern@ and tech-net@ (long thread, but not much about
libquota itself ...)
2011-03-24 17:05:39 +00:00