The NetBSD Project

CVS log for src/sys/ufs/ufs/ufs_quota1.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / ufs / ufs

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.18.6.1 / (download) - annotate - [select for diffs], Wed Aug 20 00:04:45 2014 UTC (3 months ago) by tls
Branch: tls-maxphys
Changes since 1.18: +38 -69 lines
Diff to previous 1.18 (colored) next main 1.19 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.19.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:56:58 2014 UTC (3 months, 1 week ago) by tls
Branch: tls-earlyentropy
Changes since 1.19: +5 -5 lines
Diff to previous 1.19 (colored) next main 1.20 (colored)

Rebase.

Revision 1.20 / (download) - annotate - [select for diffs], Sat May 24 16:34:04 2014 UTC (6 months ago) by christos
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-base, netbsd-7, HEAD
Changes since 1.19: +5 -5 lines
Diff to previous 1.19 (colored)

Introduce a selector function to the vfs vnode iterator so that we don't
need to vget() vnodes that we are not interested at, and optimize locking
a bit. Iterator changes reviewed by Hannken (thanks), the rest of the bugs
are mine.

Revision 1.5.2.2 / (download) - annotate - [select for diffs], Thu May 22 11:41:19 2014 UTC (6 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.5.2.1: +38 -69 lines
Diff to previous 1.5.2.1 (colored) to branchpoint 1.5 (colored) next main 1.6 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.18.10.1 / (download) - annotate - [select for diffs], Sun May 18 17:46:22 2014 UTC (6 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.18: +38 -69 lines
Diff to previous 1.18 (colored) next main 1.19 (colored)

sync with head

Revision 1.19 / (download) - annotate - [select for diffs], Mon Mar 17 09:31:35 2014 UTC (8 months, 1 week ago) by hannken
Branch: MAIN
CVS Tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Changes since 1.18: +38 -69 lines
Diff to previous 1.18 (colored)

Change quota1_handle_cmd_quotaon() and q1sync() to use vfs_vnode_iterator.

Revision 1.5.2.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:08:57 2012 UTC (2 years, 7 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.5: +97 -79 lines
Diff to previous 1.5 (colored)

sync with head

Revision 1.6.2.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:35:56 2012 UTC (2 years, 9 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.6: +97 -79 lines
Diff to previous 1.6 (colored) next main 1.7 (colored)

merge to -current.

Revision 1.18 / (download) - annotate - [select for diffs], Thu Feb 2 03:00:48 2012 UTC (2 years, 9 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, agc-symver-base, agc-symver
Branch point for: tls-maxphys, rmind-smpnet
Changes since 1.17: +5 -7 lines
Diff to previous 1.17 (colored)

Make this compile on vax (uninitialized use warning).

Revision 1.17 / (download) - annotate - [select for diffs], Wed Feb 1 05:43:54 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.16: +5 -5 lines
Diff to previous 1.16 (colored)

Improve the names of some members of struct quotactl_args. These are
effectively function parameter names, but since they need to be
described with the same names in the man page the choices do matter.
Some.

Revision 1.16 / (download) - annotate - [select for diffs], Sun Jan 29 07:16:53 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.15: +2 -3 lines
Diff to previous 1.15 (colored)

Remove references to <quota/quotaprop.h> in src/sys/ufs.
The remaining references in the kernel are in vfs_quotactl.c, the
compat_50 code for the old quotactl (to be fixed up), and the
code compiled from src/common/lib/libquota.

Revision 1.15 / (download) - annotate - [select for diffs], Sun Jan 29 06:49:44 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.14: +3 -3 lines
Diff to previous 1.14 (colored)

Rename QUOTACTL_SET to QUOTACTL_PUT, to match future intended API.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Jan 29 06:48:51 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.13: +38 -26 lines
Diff to previous 1.13 (colored)

Combine the miscellaneous QUOTACTL_SET args into a struct quotakey.

Note: this change requires a kernel version bump.

Revision 1.13 / (download) - annotate - [select for diffs], Sun Jan 29 06:47:38 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.12: +44 -27 lines
Diff to previous 1.12 (colored)

Pass only one objtype and its quotaval to QUOTACTL_SET at one time.

(The backend code to handle this is a lot tidier than I expected given
that the proplib code doesn't allow setting blocks and files
independently; I was afraid there would turn out to be a reason for
that...)

Note: this change requires a kernel version bump.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Jan 29 06:46:16 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.11: +27 -39 lines
Diff to previous 1.11 (colored)

For QUOTACTL_SET in quota1, use the quotaval data instead of proplib.

Revision 1.11 / (download) - annotate - [select for diffs], Sun Jan 29 06:45:26 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.10: +3 -2 lines
Diff to previous 1.10 (colored)

Provide quota info to QUOTACTL_SET as two struct quotaval points
as well as via proplib.

Note: this change requires a kernel version bump.

Revision 1.10 / (download) - annotate - [select for diffs], Sun Jan 29 06:41:42 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.9: +12 -7 lines
Diff to previous 1.9 (colored)

Use struct quotakey with QUOTACTL_GET. Tidy up accordingly.

Step 5 of 5 for QUOTACTL_GET.

Note: this change requires a kernel version bump.

Revision 1.9 / (download) - annotate - [select for diffs], Sun Jan 29 06:40:57 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.8: +23 -14 lines
Diff to previous 1.8 (colored)

Per the FS-independent schema, get one quotaval at a time from the
filesystem, instead of blocks and files together.

This results in fetching each FS-level quota entry twice and therefore
doing slightly more work, but (1) quota access isn't a critical path
and (2) after fetching the block values the file values will be hot in
the cache, so it won't add much total time.

Also move more of the FS-independent defintions from <quota.h> to
<sys/quota.h> so we can use them internally.

Step 4 of 5 for QUOTACTL_GET.

Note: this change requires a kernel version bump.

Revision 1.8 / (download) - annotate - [select for diffs], Sun Jan 29 06:38:24 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.7: +16 -28 lines
Diff to previous 1.7 (colored)

Move second-layer proplib frobbing within ufs quota code up to the
first layer. (Step 2 of several for QUOTACTL_GET.)

Revision 1.7 / (download) - annotate - [select for diffs], Sun Jan 29 06:23:20 2012 UTC (2 years, 9 months ago) by dholland
Branch: MAIN
Changes since 1.6: +4 -3 lines
Diff to previous 1.6 (colored)

Change dqblk_to_quotaval() from quota1_subr.c to dqblk_to_quotavals(),
and pass in two single quotaval structs (for blocks and inodes)
instead of an array of (implicitly) QUOTA_NLIMITS quotaval structs
indexed by constants from quotaprop.h.

Note: because this code is used by COMPAT_50 as well as ufs, this
change requires a kernel version bump. (The code is also used by
edquota, but via .PATH so it's not ABI-sensitive there.)

Revision 1.6 / (download) - annotate - [select for diffs], Fri Nov 25 16:55:05 2011 UTC (2 years, 11 months ago) by dholland
Branch: MAIN
CVS Tags: jmcneill-usbmp-pre-base2, jmcneill-usbmp-base
Branch point for: jmcneill-usbmp
Changes since 1.5: +14 -14 lines
Diff to previous 1.5 (colored)

Rename struct ufs_quota_entry -> struct quotaval.

Revision 1.5 / (download) - annotate - [select for diffs], Fri Oct 7 09:35:07 2011 UTC (3 years, 1 month ago) by hannken
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache
Changes since 1.4: +6 -11 lines
Diff to previous 1.4 (colored)

As vnalloc() always allocates with PR_WAITOK there is no longer the need
to test its result for NULL.

Revision 1.3.4.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:20:33 2011 UTC (3 years, 5 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.3: +8 -8 lines
Diff to previous 1.3 (colored) next main 1.4 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.4 / (download) - annotate - [select for diffs], Sun Jun 12 03:36:02 2011 UTC (3 years, 5 months ago) by rmind
Branch: MAIN
Changes since 1.3: +8 -8 lines
Diff to previous 1.3 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

Revision 1.3.6.2 / (download) - annotate - [select for diffs], Mon Jun 6 09:10:19 2011 UTC (3 years, 5 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.3.6.1: +890 -0 lines
Diff to previous 1.3.6.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored)

Sync with HEAD.

Revision 1.3.2.2 / (download) - annotate - [select for diffs], Thu Apr 21 01:42:21 2011 UTC (3 years, 7 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.3.2.1: +890 -0 lines
Diff to previous 1.3.2.1 (colored) to branchpoint 1.3 (colored) next main 1.4 (colored)

sync with head

Revision 1.3.6.1, Thu Mar 24 17:05:46 2011 UTC (3 years, 8 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.3: +0 -890 lines
FILE REMOVED

file ufs_quota1.c was added on branch jruoho-x86intr on 2011-06-06 09:10:19 +0000

Revision 1.3.2.1, Thu Mar 24 17:05:46 2011 UTC (3 years, 8 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.3: +0 -890 lines
FILE REMOVED

file ufs_quota1.c was added on branch rmind-uvmplock on 2011-04-21 01:42:21 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Thu Mar 24 17:05:46 2011 UTC (3 years, 8 months ago) by bouyer
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base
Branch point for: rmind-uvmplock, jruoho-x86intr, cherry-xenmp
Changes since 1.2: +62 -28 lines
Diff to previous 1.2 (colored)

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 ...)

Revision 1.2 / (download) - annotate - [select for diffs], Sun Mar 6 17:08:39 2011 UTC (3 years, 8 months ago) by bouyer
Branch: MAIN
Changes since 1.1: +856 -0 lines
Diff to previous 1.1 (colored)

merge the bouyer-quota2 branch. This adds a new on-disk format
to store disk quota usage and limits, integrated with ffs
metadata. Usage is checked by fsck_ffs (no more quotacheck)
and is covered by the WAPBL journal. Enabled with kernel
option QUOTA2 (added where QUOTA was enabled in kernel config files),
turned on with tunefs(8) on a per-filesystem
basis. mount_mfs(8) can also turn quotas on.

See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html
for details.

Revision 1.1.2.6 / (download) - annotate - [select for diffs], Wed Feb 9 17:43:53 2011 UTC (3 years, 9 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.1.2.5: +21 -11 lines
Diff to previous 1.1.2.5 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

Make it actually work.

Revision 1.1.2.5 / (download) - annotate - [select for diffs], Wed Feb 9 16:15:01 2011 UTC (3 years, 9 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.1.2.4: +104 -32 lines
Diff to previous 1.1.2.4 (colored) to branchpoint 1.1 (colored)

Reimplement quotactl commands for quota1

Revision 1.1.2.4 / (download) - annotate - [select for diffs], Wed Feb 9 12:01:20 2011 UTC (3 years, 9 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.1.2.3: +3 -3 lines
Diff to previous 1.1.2.3 (colored) to branchpoint 1.1 (colored)

Fix typo

Revision 1.1.2.3 / (download) - annotate - [select for diffs], Tue Feb 8 20:00:53 2011 UTC (3 years, 9 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.1.2.2: +70 -31 lines
Diff to previous 1.1.2.2 (colored) to branchpoint 1.1 (colored)

Minimal hacking to make 'options QUOTA' compile again.

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Mon Jan 31 15:24:10 2011 UTC (3 years, 9 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.1.2.1: +15 -14 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored)

Catch up with Q2V -> QL renaming
Enforce limits for quota2.
pass quota type (*QUOTA) and limit type (QL_*) to
KAUTH_REQ_SYSTEM_FS_QUOTA_NOLIMIT, to make it possible to skip
limit checks for some quota type only if a listener wants to.

Revision 1.1.2.1 / (download) - annotate - [select for diffs], Thu Jan 20 14:25:03 2011 UTC (3 years, 10 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.1: +734 -0 lines
Diff to previous 1.1 (colored)

Snapshot of work in progress on a modernised disk quota system:
- new quotactl syscall (versionned for backward compat), which takes
  as parameter a path to a mount point, and a prop_dictionary
  (in plistref format) describing commands and arguments.
  For each command, status and data are returned as a prop_dictionary.
  quota commands features will be added to take advantage of this,
  exporting quota data or getting quota commands as plists.

- new on disk-format storage (all 64bit wide), integrated to metadata for
  ffs (and playing nicely with wapbl).
  Quotas are enabled on a ffs filesystem via superblock flags.
  tunefs(8) can enable or disable quotas.
  On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid
  block and inode usages, and will check and update quotas in Pass 6.
  quota usage and limits are stored in unliked files (one for users,
  one for groups)l fsck_ffs(8) will create the files if needed, or
  free them if needed. This means that after enabling or disabling
  quotas on a filesystem; a fsck_ffs(8) run is required.
  quotacheck(8) is not needed any more, on a unclean shutdown
  fsck or journal replay will take care of fixing quotas.
  newfs(8) can create a ready-to-mount quota-enabled filesystem
  (superblock flags are set and quota inodes are created).
  Other new features or semantic changes:
  - default quota datas, applied to users or groups which don't already
    have a quota entry
  - per-user/group grace time (instead of a filesystem global one)
  - 0 really means "nothing allowed at all", not "no limit".
    If you want "no limit", set the limit to UQUAD_MAX (tools will
    understand "unlimited" and "-")

  A quota file is structured as follow:
  it starts with a header, containing a few per-filesystem values,
  and the default quota limits.
  Quota entries are linked together as a simple list, each entry has a
  pointer (as an offset withing the file) to the next.
  The header has a pointer to a list of free quota entries, and
  a hash table of in-use entries. The size of the hash table depends
  on the filesystem block size (header+hash table should fit in the
  first block). The file is not sparse and is a multiple of
  filesystem block size (when the free quota entry list is empty a new
  filesystem block is allocated). quota entries to not cross
  filesystem block boundaries.

  In memory, the kernel keeps a cache of recently used quota entries
  as a reference to the block number, and offset withing the block.
  The quota entry itself is keept in the buf cache.

fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with
related atf tests :)
The kernel can update disk usage and report it via quotactl(2).

Todo: enforce quotas limits (limits are not checked by kernel yet)
      update repquota, edquota and rpc.rquotad to the new world
      implement compat_50_quotactl ioctl.
      update quotactl(2) man page

fsck_ffs required fixes so that allocating new blocks or inodes will
properly update the superblock and cg sumaries. This was not an issue up
to now because superblock and cg sumaries check happened last, but now
allocations or frees can happen in pass 6.

Revision 1.1, Thu Jan 20 14:25:03 2011 UTC (3 years, 10 months ago) by bouyer
Branch: MAIN
CVS Tags: bouyer-quota2-nbase, bouyer-quota2-base
Branch point for: bouyer-quota2
FILE REMOVED

file ufs_quota1.c was initially added on branch bouyer-quota2.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>