Home | History | Annotate | only in /src/sys/rump/fs/lib/libffs
History log of /src/sys/rump/fs/lib/libffs
RevisionDateAuthorComments
 1.23 03-Jun-2023  lukem bsd.own.mk: rename GCC_NO_* to CC_WNO_*

Rename compiler-warning-disable variables from
GCC_NO_warning
to
CC_WNO_warning
where warning is the full warning name as used by the compiler.

GCC_NO_IMPLICIT_FALLTHRU is CC_WNO_IMPLICIT_FALLTHROUGH

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.22 03-Jun-2023  lukem bsd.own.mk: rename to CC_WNO_ADDRESS_OF_PACKED_MEMBER

Provide a single variable
CC_WNO_ADDRESS_OF_PACKED_MEMBER
with options for both clang and gcc, to replace
CLANG_NO_ADDR_OF_PACKED_MEMBER
CC_NO_ADDR_OF_PACKED_MEMBER
GCC_NO_ADDR_OF_PACKED_MEMBER

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.21 06-Sep-2020  mrg add support for new GCC 9 warnings that may be too much to fix
right now. new address-of-packed-member and format-overflow
warnings have new GCC_NO_ADDR_OF_PACKED_MEMBER amd
GCC_NO_FORMAT_OVERFLOW variables to remove these warnings.

apply to a bunch of the tree. mostly, these are real bugs that
should be fixed, but in many cases, only by removing the 'packed'
attribute from some structure that doesn't really need it. (i
looked at many different ones, and while perhaps 60-80% were
already properly aligned, it wasn't clear to me that the uses
were always coming from sane data vs network alignment, so it
doesn't seem safe to remove packed without careful research for
each affect struct.) clang already warned (and was not erroring)
for many of these cases, but gcc picked up dozens more.
 1.20 16-May-2020  christos Add ACL support for FFS. From FreeBSD.
 1.19 25-Apr-2020  bouyer Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor
 1.18 18-Apr-2020  christos Extended attribute support for ffsv2, from FreeBSD.
 1.17 12-Apr-2020  christos remove removed file
 1.16 19-Oct-2015  pooka branches: 1.16.18; 1.16.28;
Add a COMMENT describing what each component roughly does.

"make describe" prints the comment.

Requested/inspired by Vincent Schwarzer on rumpkernel-users
 1.15 08-May-2014  hannken branches: 1.15.4;
Add a global vnode cache:

- vcache_get() retrieves a referenced and initialised vnode / fs node pair.
- vcache_remove() removes a vnode / fs node pair from the cache.

On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to
initialise a vnode / fs node pair. This call is guaranteed exclusive,
no other thread will try to load this vnode / fs node pair.

Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.

Remove now unused ufs/ufs_ihash

Discussed on tech-kern.

Welcome to 6.99.41
 1.14 09-May-2012  riastradh branches: 1.14.2; 1.14.4; 1.14.12;
Adapt ffs, lfs, and ext2fs to use genfs_rename.

ok dholland, rmind
 1.13 06-Mar-2011  bouyer branches: 1.13.4; 1.13.8;
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.
 1.12 20-May-2010  pooka branches: 1.12.2; 1.12.4;
include extattr support
 1.11 02-Mar-2010  pooka branches: 1.11.2;
While I like redundant computing, specifying each option just once
is generally enough.
 1.10 16-Feb-2010  pooka Globally define -Wno-pointer-sign, as it has become a pointless
exercise of "add it to every Makefile individually".

XXX: should autosynchronize with the rest of the kernel buildflags
in sys/conf/Makefile.kern.inc.
 1.9 02-May-2009  pooka branches: 1.9.2;
Merge librumpfs_ufs into librumpfs_ffs. This reflects what happened
with the ffs kernel module and follows the trend of retiring ufs.
It also allows to get rid of a special case kludge in runtime module
loading, since ufs was not really a module. librumpfs_ufs is now
obsoleted and ffs consumers should be linked solely against
librumpfs_ffs.
 1.8 06-Apr-2009  pooka compile in snapshot code
 1.7 22-Feb-2009  ad PR kern/26878 FFSv2 + softdep = livelock (no free ram)
PR kern/16942 panic with softdep and quotas
PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch
PR kern/26274 softdep panic: allocdirect_merge: ...
PR kern/26374 Long delay before non-root users can write to softdep partitions
PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem
PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption
PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk
PR kern/31981 stopping scsi disk can cause panic (softdep)
PR kern/32116 kernel panic in softdep (assertion failure)
PR kern/32532 softdep_trackbufs deadlock
PR kern/37191 softdep: locking against myself
PR kern/40474 Kernel panic after remounting raid root with softdep

Retire softdep, pass 2. As discussed and later formally announced on the
mailing lists.
 1.6 05-Aug-2008  simonb branches: 1.6.2; 1.6.8;
Enable "options APPLE_UFS". OK pooka@.
 1.5 31-Jul-2008  simonb Merge the simonb-wapbl branch. From the original branch commit:

Add Wasabi System's WAPBL (Write Ahead Physical Block Logging)
journaling code. Originally written by Darrin B. Jewell while
at Wasabi and updated to -current by Antti Kantee, Andy Doran,
Greg Oster and Simon Burge.

OK'd by core@, releng@.
 1.4 29-Jul-2008  pooka Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.3 24-Sep-2007  pooka branches: 1.3.4; 1.3.20; 1.3.24; 1.3.26; 1.3.28; 1.3.30;
-DFFS_EI
 1.2 07-Aug-2007  pooka branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.10;
more bsd.own.mk inclusion
 1.1 05-Aug-2007  pooka branches: 1.1.2;
Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.2 05-Aug-2007  pooka Introduce RUMPs - Runnable Userspace Meta-Programs

/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment. The kernel environment is provided
by librump. Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel. Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
 1.1.2.1 05-Aug-2007  pooka file Makefile was added on branch matt-mips64 on 2007-08-05 22:28:05 +0000
 1.2.10.1 06-Oct-2007  yamt sync with head.
 1.2.8.3 27-Oct-2007  yamt sync with head.
 1.2.8.2 03-Sep-2007  yamt sync with head.
 1.2.8.1 07-Aug-2007  yamt file Makefile was added on branch yamt-lazymbuf on 2007-09-03 14:45:05 +0000
 1.2.6.1 06-Nov-2007  matt sync with HEAD
 1.2.4.3 09-Oct-2007  ad Sync with head.
 1.2.4.2 20-Aug-2007  ad Sync with HEAD.
 1.2.4.1 07-Aug-2007  ad file Makefile was added on branch vmlocking on 2007-08-20 22:07:19 +0000
 1.2.2.2 15-Aug-2007  skrll Sync with HEAD.
 1.2.2.1 07-Aug-2007  skrll file Makefile was added on branch nick-csl-alignment on 2007-08-15 13:50:22 +0000
 1.3.30.1 19-Oct-2008  haad Sync with HEAD.
 1.3.28.2 31-Jul-2008  simonb Sync with head.
 1.3.28.1 10-Jun-2008  simonb Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block
Logging) journaling code. Originally written by Darrin B. Jewell
while at Wasabi and updated to -current by Antti Kantee, Andy Doran,
Greg Oster and Simon Burge.

Still a number of issues - look in doc/BRANCHES for "simonb-wapbl"
for more info.
 1.3.26.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.3.24.3 11-Aug-2010  yamt sync with head.
 1.3.24.2 11-Mar-2010  yamt sync with head
 1.3.24.1 04-May-2009  yamt sync with head.
 1.3.20.1 28-Sep-2008  mjf Sync with HEAD.
 1.3.4.2 02-Nov-2007  joerg Reduce diff to HEAD by adding files forgotten in early merges.
 1.3.4.1 24-Sep-2007  joerg file Makefile was added on branch jmcneill-pm on 2007-11-02 12:43:35 +0000
 1.6.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.6.2.2 28-Apr-2009  skrll Sync with HEAD.
 1.6.2.1 03-Mar-2009  skrll Sync with HEAD.
 1.9.2.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.9.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.11.2.2 21-Apr-2011  rmind sync with head
 1.11.2.1 30-May-2010  rmind sync with head
 1.12.4.3 18-Feb-2011  bouyer quota2_subr.c is not used outside of ufs_quota2.c in kernel, so make it
compiled conditionally on QUOTA2 again
 1.12.4.2 15-Feb-2011  bouyer Implement COMPAT_50 quotactl(2)
 1.12.4.1 20-Jan-2011  bouyer 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.
 1.12.2.1 06-Jun-2011  jruoho Sync with HEAD.
 1.13.8.1 02-Jun-2012  mrg sync to latest -current.
 1.13.4.2 22-May-2014  yamt 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")
 1.13.4.1 23-May-2012  yamt sync with head.
 1.14.12.1 10-Aug-2014  tls Rebase.
 1.14.4.1 18-May-2014  rmind sync with head
 1.14.2.2 03-Dec-2017  jdolecek update from HEAD
 1.14.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.4.1 27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.16.28.1 20-Apr-2020  bouyer Sync with HEAD
 1.16.18.1 21-Apr-2020  martin Sync with HEAD
 1.2 02-Dec-2014  pooka Remove shlib_version files and just use Makefile SHLIB_MAJOR/MINOR,
with the default provided by Makefile.rump (they're all 0.0 anyway)
 1.1 29-Jul-2008  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.20; 1.1.48; 1.1.68;
Install rump libraries and utilities to the base system and remove the
private non-installed build infrastructure from sys/rump.

breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
 1.1.68.1 06-Apr-2015  skrll Sync with HEAD
 1.1.48.1 03-Dec-2017  jdolecek update from HEAD
 1.1.20.2 04-May-2009  yamt sync with head.
 1.1.20.1 29-Jul-2008  yamt file shlib_version was added on branch yamt-nfs-mp on 2009-05-04 08:14:26 +0000
 1.1.8.2 19-Oct-2008  haad Sync with HEAD.
 1.1.8.1 29-Jul-2008  haad file shlib_version was added on branch haad-dm on 2008-10-19 22:18:05 +0000
 1.1.6.2 28-Sep-2008  mjf Sync with HEAD.
 1.1.6.1 29-Jul-2008  mjf file shlib_version was added on branch mjf-devfs2 on 2008-09-28 10:41:02 +0000
 1.1.4.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.4.1 29-Jul-2008  wrstuden file shlib_version was added on branch wrstuden-revivesa on 2008-09-18 04:37:03 +0000
 1.1.2.2 31-Jul-2008  simonb Sync with head.
 1.1.2.1 29-Jul-2008  simonb file shlib_version was added on branch simonb-wapbl on 2008-07-31 04:51:04 +0000

RSS XML Feed