CVS log for src/sys/ufs/ufs/ufs_quota.h
Up to [cvs.NetBSD.org] / src / sys / ufs / ufs
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Revision 1.21.2.1: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:04:45 2014 UTC (10 years, 6 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21: +2 -2
lines
Rebase to HEAD as of a few days ago.
Revision 1.21.12.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:56:58 2014 UTC (10 years, 6 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21: +2 -2
lines
Rebase.
Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat Jun 28 22:27:51 2014 UTC (10 years, 7 months ago) by dholland
Branches: MAIN
CVS tags: tls-maxphys-base-20171202,
tls-maxphys-base,
tls-earlyentropy-base,
thorpej-ifq-base,
thorpej-ifq,
thorpej-i2c-spi-conf2-base,
thorpej-i2c-spi-conf2,
thorpej-i2c-spi-conf-base,
thorpej-i2c-spi-conf,
thorpej-futex2-base,
thorpej-futex2,
thorpej-futex-base,
thorpej-futex,
thorpej-cfargs2-base,
thorpej-cfargs2,
thorpej-cfargs-base,
thorpej-cfargs,
thorpej-altq-separation-base,
thorpej-altq-separation,
prg-localcount2-base3,
prg-localcount2-base2,
prg-localcount2-base1,
prg-localcount2-base,
prg-localcount2,
phil-wifi-base,
phil-wifi-20200421,
phil-wifi-20200411,
phil-wifi-20200406,
phil-wifi-20191119,
phil-wifi-20190609,
phil-wifi,
pgoyette-localcount-base,
pgoyette-localcount-20170426,
pgoyette-localcount-20170320,
pgoyette-localcount-20170107,
pgoyette-localcount-20161104,
pgoyette-localcount-20160806,
pgoyette-localcount-20160726,
pgoyette-localcount,
pgoyette-compat-merge-20190127,
pgoyette-compat-base,
pgoyette-compat-20190127,
pgoyette-compat-20190118,
pgoyette-compat-1226,
pgoyette-compat-1126,
pgoyette-compat-1020,
pgoyette-compat-0930,
pgoyette-compat-0906,
pgoyette-compat-0728,
pgoyette-compat-0625,
pgoyette-compat-0521,
pgoyette-compat-0502,
pgoyette-compat-0422,
pgoyette-compat-0415,
pgoyette-compat-0407,
pgoyette-compat-0330,
pgoyette-compat-0322,
pgoyette-compat-0315,
pgoyette-compat,
perseant-stdc-iso10646-base,
perseant-stdc-iso10646,
perseant-exfatfs-base-20240630,
perseant-exfatfs-base,
perseant-exfatfs,
nick-nhusb-base-20170825,
nick-nhusb-base-20170204,
nick-nhusb-base-20161204,
nick-nhusb-base-20161004,
nick-nhusb-base-20160907,
nick-nhusb-base-20160529,
nick-nhusb-base-20160422,
nick-nhusb-base-20160319,
nick-nhusb-base-20151226,
nick-nhusb-base-20150921,
nick-nhusb-base-20150606,
nick-nhusb-base-20150406,
nick-nhusb-base,
nick-nhusb,
netbsd-9-base,
netbsd-9-4-RELEASE,
netbsd-9-3-RELEASE,
netbsd-9-2-RELEASE,
netbsd-9-1-RELEASE,
netbsd-9-0-RELEASE,
netbsd-9-0-RC2,
netbsd-9-0-RC1,
netbsd-9,
netbsd-8-base,
netbsd-8-3-RELEASE,
netbsd-8-2-RELEASE,
netbsd-8-1-RELEASE,
netbsd-8-1-RC1,
netbsd-8-0-RELEASE,
netbsd-8-0-RC2,
netbsd-8-0-RC1,
netbsd-8,
netbsd-7-nhusb-base-20170116,
netbsd-7-nhusb-base,
netbsd-7-nhusb,
netbsd-7-base,
netbsd-7-2-RELEASE,
netbsd-7-1-RELEASE,
netbsd-7-1-RC2,
netbsd-7-1-RC1,
netbsd-7-1-2-RELEASE,
netbsd-7-1-1-RELEASE,
netbsd-7-1,
netbsd-7-0-RELEASE,
netbsd-7-0-RC3,
netbsd-7-0-RC2,
netbsd-7-0-RC1,
netbsd-7-0-2-RELEASE,
netbsd-7-0-1-RELEASE,
netbsd-7-0,
netbsd-7,
netbsd-10-base,
netbsd-10-1-RELEASE,
netbsd-10-0-RELEASE,
netbsd-10-0-RC6,
netbsd-10-0-RC5,
netbsd-10-0-RC4,
netbsd-10-0-RC3,
netbsd-10-0-RC2,
netbsd-10-0-RC1,
netbsd-10,
matt-nb8-mediatek-base,
matt-nb8-mediatek,
localcount-20160914,
jdolecek-ncq-base,
jdolecek-ncq,
isaki-audio2-base,
isaki-audio2,
is-mlppp-base,
is-mlppp,
cjep_sun2x-base1,
cjep_sun2x-base,
cjep_sun2x,
cjep_staticlib_x-base1,
cjep_staticlib_x-base,
cjep_staticlib_x,
bouyer-xenpvh-base2,
bouyer-xenpvh-base1,
bouyer-xenpvh-base,
bouyer-xenpvh,
bouyer-sunxi-drm-base,
bouyer-sunxi-drm,
bouyer-socketcan-base1,
bouyer-socketcan-base,
bouyer-socketcan,
ad-namecache-base3,
ad-namecache-base2,
ad-namecache-base1,
ad-namecache-base,
ad-namecache,
HEAD
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +2 -2
lines
Revert the following changes:
src/sys/sys/quotactl.h 1.37
src/sys/compat/netbsd32/netbsd32.h 1.101
src/sys/compat/netbsd32/netbsd32_netbsd.c 1.188, 1.189
src/sys/kern/vfs_quotactl.c 1.39
src/sys/kern/vfs_syscalls.c 1.483
src/sys/ufs/lfs/ulfs_quota.c 1.11
src/sys/ufs/ufs/ufs_quota.c 1.116
src/lib/libquota/quota_kernel.c 1.5
and do them correctly.
If you're going to change the name of something, you need to change
the name of *all* the things with the same name, not just a handful,
and you should change it to something similar so it still matches the
rest of the system rather than just picking an arbitrarily different
name.
Hi, Joerg.
To wit, rename the quotactl "delete" operation to "del", because
"delete" is a reserved word in C++ and for some reason Joerg wants to
run internal interfaces used only by C code through his C++ compiler.
Do not rename it to "remove" instead, because this doesn't match
libquota or the rest of the usage throughout the system; and rename
all the related identifiers, not just the ones that blew the mind of
Joerg's C++ compiler.
Because this is not a user-facing API (the only userland consumer
sys/quotactl.h is libquota) it is sort of ok to make arbitrary
source-incompatible changes; however, by the same token it's completely
unnecessary. If it *were* a user-facing API that someone might have a
semi-rational reason to want to run a C++ compiler on, it would be
incorrect to change it at this point.
Revision 1.20.2.1: download - view: text, markup, annotated - select for diffs
Mon Jul 30 08:24:57 2012 UTC (12 years, 6 months ago) by martin
Branches: netbsd-6
CVS tags: 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,
matt-nb6-plus-nbase,
matt-nb6-plus-base,
matt-nb6-plus
Diff to: previous 1.20: preferred, colored; next MAIN 1.21: preferred, colored
Changes since revision 1.20: +2 -2
lines
Pull up following revision(s) (requested by dholland in ticket #450):
sys/ufs/ufs/ufs_quota.c: revision 1.110
sys/ufs/ufs/ufs_quota.h: revision 1.21
sys/ufs/ufs/ufs_quota.c: revision 1.109
Eliminate a common in a header file (add a missing extern) and
declare it in the approriate C file.
Restore accidentally lost initialization of quotatypes[].
Fixes (null) in the kernel message triggered when you go over quota, and
maybe other things. Reported by Matthew Mondor.
Revision 1.2.8.1: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:08:57 2012 UTC (12 years, 10 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2: +23 -8
lines
sync with head
Revision 1.2.12.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 07:35:56 2012 UTC (13 years ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2: +23 -8
lines
merge to -current.
Revision 1.21: download - view: text, markup, annotated - select for diffs
Sat Feb 18 06:13:23 2012 UTC (13 years ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base9,
yamt-pagecache-base8,
yamt-pagecache-base7,
yamt-pagecache-base6,
yamt-pagecache-base5,
yamt-pagecache-base4,
rmind-smpnet-nbase,
rmind-smpnet-base,
rmind-smpnet,
riastradh-xf86-video-intel-2-7-1-pre-2-21-15,
riastradh-drm2-base3,
riastradh-drm2-base2,
riastradh-drm2-base1,
riastradh-drm2-base,
riastradh-drm2,
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,
tls-earlyentropy
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +2 -2
lines
Eliminate a common in a header file (add a missing extern) and
declare it in the approriate C file.
Revision 1.20: download - view: text, markup, annotated - select for diffs
Sun Jan 29 07:09:52 2012 UTC (13 years ago) by dholland
Branches: MAIN
CVS tags: netbsd-6-base
Branch point for: netbsd-6
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +7 -2
lines
Add QUOTACTL_CURSORSKIPIDTYPE, QUOTACTL_CURSORATEND, QUOTACTL_CURSORREWIND.
This change requires a kernel version bump.
Revision 1.19: download - view: text, markup, annotated - select for diffs
Sun Jan 29 07:08:58 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -2
lines
Don't pass the idtype to QUOTACTL_GETALL. Instead, iterate both users
and groups.
This change requires a kernel version bump.
Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Jan 29 07:07:22 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -3
lines
Call QUOTACTL_GETALL in a loop to get results 8 at a time. Make
the QUOTACTL_GETALL interface less abusive.
Note: this change requires a kernel version bump.
Revision 1.17: download - view: text, markup, annotated - select for diffs
Sun Jan 29 07:02:06 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +3 -2
lines
Hack QUOTACTL_GETALL to return results without using proplib.
(this interface is abusive and is going to be cleaned up in the
immediate future)
Note: this change requires a kernel version bump.
Revision 1.16: download - view: text, markup, annotated - select for diffs
Sun Jan 29 07:00:40 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +3 -2
lines
Pass the cursor to QUOTACTL_GETALL. Don't pass unused proplib items.
Note: this change requires a kernel version bump.
Revision 1.15: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:57:15 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +6 -1
lines
Begin adding quota cursor/iteration interface to VFS_QUOTACTL.
Add struct quotakcursor.
Add QUOTACTL_CURSOROPEN and QUOTACTL_CURSORCLOSE operations.
Implement the plumbing for them.
Add trivial implementations of them for quota2.
(iteration is not supported on quota1 for the time being, just as
getall isn't)
Have the proplib interpreter open and close a cursor around doing
QUOTACTL_GETALL.
Note: this change requires a kernel version bump.
Revision 1.14: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:55:44 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -2
lines
Package up the args of QUOTACTL_DELETE as a struct quotakey.
Revision 1.13: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:54:34 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +2 -2
lines
QUOTACTL_CLEAR -> QUOTACTL_DELETE to match intended API and user API.
Revision 1.12: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:53:35 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -2
lines
Improve the quota2 QUOTACTL_CLEAR code to allow clearing blocks and
files independently.
Note: this change requires a kernel version bump.
Revision 1.11: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:52:39 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +2 -2
lines
The handling of QUOTACTL_CLEAR does not use the proplib data
dictionary, so don't pass it.
Note: this change requires a kernel version bump.
Revision 1.10: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:49:44 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +3 -3
lines
Rename QUOTACTL_SET to QUOTACTL_PUT, to match future intended API.
Revision 1.9: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:48:50 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +3 -3
lines
Combine the miscellaneous QUOTACTL_SET args into a struct quotakey.
Note: this change requires a kernel version bump.
Revision 1.8: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:47:38 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +5 -5
lines
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.7: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:46:50 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +3 -2
lines
For QUOTACTL_SET in quota2, use the quotaval data instead of proplib.
Revision 1.6: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:46:16 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +3 -2
lines
For QUOTACTL_SET in quota1, use the quotaval data instead of proplib.
Revision 1.5: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:41:41 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +3 -3
lines
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.4: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:40:57 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +5 -5
lines
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.3: download - view: text, markup, annotated - select for diffs
Sun Jan 29 06:38:24 2012 UTC (13 years ago) by dholland
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +5 -3
lines
Move second-layer proplib frobbing within ufs quota code up to the
first layer. (Step 2 of several for QUOTACTL_GET.)
Revision 1.2.6.2: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:10:18 2011 UTC (13 years, 8 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.2.6.1: preferred, colored; branchpoint 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.6.1: +130 -0
lines
Sync with HEAD.
Revision 1.2.2.2: download - view: text, markup, annotated - select for diffs
Thu Apr 21 01:42:21 2011 UTC (13 years, 10 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.2.2.1: preferred, colored; branchpoint 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.2.1: +130 -0
lines
sync with head
Revision 1.2.6.1
Sun Mar 6 17:08:39 2011 UTC (13 years, 11 months ago) by jruoho
Branches: jruoho-x86intr
FILE REMOVED
Changes since revision 1.2: +0 -130
lines
file ufs_quota.h was added on branch jruoho-x86intr on 2011-06-06 09:10:18 +0000
Revision 1.2.2.1
Sun Mar 6 17:08:39 2011 UTC (13 years, 11 months ago) by rmind
Branches: rmind-uvmplock
FILE REMOVED
Changes since revision 1.2: +0 -130
lines
file ufs_quota.h was added on branch rmind-uvmplock on 2011-04-21 01:42:21 +0000
Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Mar 6 17:08:39 2011 UTC (13 years, 11 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
rmind-uvmplock-nbase,
rmind-uvmplock-base,
jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base,
jmcneill-audiomp3-base,
jmcneill-audiomp3,
cherry-xenmp-base,
cherry-xenmp
Branch point for: yamt-pagecache,
rmind-uvmplock,
jruoho-x86intr,
jmcneill-usbmp
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +130 -0
lines
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.9: download - view: text, markup, annotated - select for diffs
Wed Feb 9 16:15:01 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.8: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.2.8: +4 -1
lines
Reimplement quotactl commands for quota1
Revision 1.1.2.8: download - view: text, markup, annotated - select for diffs
Wed Feb 9 11:18:30 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.7: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.7: +2 -11
lines
Various build fixes
Revision 1.1.2.7: download - view: text, markup, annotated - select for diffs
Tue Feb 8 20:09:56 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.6: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.6: +0 -2
lines
Remove unused prototypes
Revision 1.1.2.6: download - view: text, markup, annotated - select for diffs
Tue Feb 8 20:00:53 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.5: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.5: +5 -3
lines
Minimal hacking to make 'options QUOTA' compile again.
Revision 1.1.2.5: download - view: text, markup, annotated - select for diffs
Mon Feb 7 20:30:39 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.4: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.4: +2 -1
lines
Implement clear command (quota2 only), which either free the specified
quota2 entry (if both disk and inode usage are 0) or revert its limits to
the default quota entry.
Revision 1.1.2.4: download - view: text, markup, annotated - select for diffs
Mon Jan 31 15:24:10 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.3: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.3: +2 -3
lines
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.3: download - view: text, markup, annotated - select for diffs
Sun Jan 30 00:25:20 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.2: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.2: +3 -3
lines
Implement 'set' command for quota2.
Revision 1.1.2.2: download - view: text, markup, annotated - select for diffs
Fri Jan 21 16:58:06 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1.2.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.1: +5 -4
lines
Add support for quotactl("getall") command, and convert repquota to new
world.
Revision 1.1.2.1: download - view: text, markup, annotated - select for diffs
Thu Jan 20 14:25:03 2011 UTC (14 years ago) by bouyer
Branches: bouyer-quota2
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +135 -0
lines
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 (14 years ago) by bouyer
Branches: MAIN
CVS tags: bouyer-quota2-nbase,
bouyer-quota2-base
Branch point for: bouyer-quota2
FILE REMOVED
file ufs_quota.h was initially added on branch bouyer-quota2.
CVSweb <webmaster@jp.NetBSD.org>