Home | History | Annotate | Download | only in ufs
History log of /src/sys/ufs/ufs/ufs_wapbl.h
RevisionDateAuthorComments
 1.19  11-Apr-2020  jdolecek remove noncompilable WAPBL_DEBUG_INODES

PR kern/49554 by Thomas Klausner
 1.18  05-Mar-2020  riastradh branches: 1.18.2;
Revert "Include opt_diagnostic.h for DIAGNOSTIC."

This did not do what I thought it did. opt_diagnostic.h is only for
the unused _DIAGNOSTIC, which seems like an abortive attempt to
incrementally convert DIAGNOSTIC to an opt_*.h option rather than a
command-line option.
 1.17  05-Mar-2020  riastradh Include opt_diagnostic.h for DIAGNOSTIC.

...at least, in header files, which may not have already included
libkern.h.
 1.16  10-Dec-2018  jdolecek put back UFS_WAPBL_JUNLOCK_ASSERT(), the underlying rw_write_held() check
doesn't actually have a race since it checks if the rwlock is held by
current lwp
 1.15  10-Dec-2018  jdolecek make UFS_WAPBL_JLOCK_ASSERT() #ifdef DIAGNOSTIC, same as the underlying
function KASSERT(), so that it actually does something; fix code using
it to actually pass correct params, so that it compiles

remove UFS_WAPBL_JUNLOCK_ASSERT(), as that is inherently racy (it's
okay on those places if the rwlock is held by other lwp); depend
on the RW_ASSERT()/LOCKDEBUG inside rw_enter() to catch the case
with wapbl rwlock held by current lwp
 1.14  11-Nov-2016  jdolecek branches: 1.14.14; 1.14.16;
fix !WAPBL variant of UFS_WAPBL_REGISTER_DEALLOCATION()
 1.13  10-Nov-2016  jdolecek during truncate with wapbl, register deallocation for upper indirect block
before recursing into lower blocks, to make sure that it will be removed after
all its referenced blocks are removed

fixes 'ffs_blkfree_common: freeing free block' panic triggered by
ufs_truncate_retry() when just the upper indirect block registration failed,
code tried to free the lower blocks again after wapbl flush

problem found by hannken@, thank you
 1.12  28-Oct-2016  jdolecek reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially
succeed; change wapbl_register_deallocation() to return EAGAIN
rather than panic when code hits the limit

callers changed to either loop calling ffs_truncate() using new
utility ufs_truncate_retry() if their semantics requires it, or
just ignore the failure; remove ufs_wapbl_truncate()

this fixes possible user-triggerable panic during truncate, and
resolves WAPBL performance issue with truncates of large files

PR kern/47146 and kern/49175
 1.11  19-May-2016  riastradh branches: 1.11.2;
While here, replace GCC __FUNCTION__ by C99 __func__

From coypu.
 1.10  19-May-2016  riastradh Simplify ufs_wapbl_begin2/end2, drop 2 suffix

We are no longer calling UFS_WAPBL_BEGIN/END with vnodes (we are giving
NULL as a parameter in all cases), so we can get rid of this input
parameter and the relevant check.

From coypu.
 1.9  19-May-2016  riastradh Get rid of UFS_WAPBL_BEGIN1/END1

ufs makeinode no longer releases dvp, so incrementing the
usecount for wapbl is unnecessary.

From coypu.
 1.8  10-Nov-2013  christos branches: 1.8.6;
__USE a variable for the non-wapbl case
 1.7  19-Sep-2011  gdt branches: 1.7.2; 1.7.12; 1.7.16;
Remove prototype for the departed wapbl_ufs_rename.

ok dholland@
 1.6  18-Nov-2009  yamt use NULL instead of 0 for pointers
 1.5  08-Oct-2008  pooka branches: 1.5.12;
#error if WABPL_DEBUG_INODES is defined. That code has bitrotted
more than casu marzu cheese.
 1.4  06-Aug-2008  oster branches: 1.4.2; 1.4.4;
Define UFS_WAPBL_UNREGISTER_INODE() and UFS_WAPBL_REGISTER_INODE()
to something that pacifies the compiler in the non-WAPBL case.

Fix suggested by Martin Husemann. Fixes PR#39302.
 1.3  31-Jul-2008  simonb Be consistent with #define<tab>.
 1.2  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.1  10-Jun-2008  simonb branches: 1.1.2; 1.1.4;
file ufs_wapbl.h was initially added on branch simonb-wapbl.
 1.1.4.1  19-Oct-2008  haad Sync with HEAD.
 1.1.2.4  28-Jul-2008  simonb Add support for creating a WAPBL log in the filesystem. Will
create an in-filesystem log on first "mount -o log" if one doesn't
exist, and will then continue to use same log in the future. See
(soon to be added) wapbl(4) for more info.

Adds a new B_CONTIG low-level allocation flag that uses hints in
"struct ffs_inode_ext" to lay out an ffs file's data contiguously.

Thanks to Greg Oster for helping with the design of this and to
Antti Kantee for code review and suggestions.
 1.1.2.3  03-Jul-2008  simonb Store the location of the journal in the superblock. Currently
nothing really uses this, other than replay checking that what is
in the superblock matches what it expects.
 1.1.2.2  12-Jun-2008  martin License police
 1.1.2.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.4.4.3  17-Jan-2009  mjf Sync with HEAD.
 1.4.4.2  28-Sep-2008  mjf Sync with HEAD.
 1.4.4.1  06-Aug-2008  mjf file ufs_wapbl.h was added on branch mjf-devfs2 on 2008-09-28 10:41:06 +0000
 1.4.2.3  10-Oct-2008  skrll Sync with HEAD.
 1.4.2.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.2.1  06-Aug-2008  wrstuden file ufs_wapbl.h was added on branch wrstuden-revivesa on 2008-09-18 04:37:06 +0000
 1.5.12.3  11-Mar-2010  yamt sync with head
 1.5.12.2  04-May-2009  yamt sync with head.
 1.5.12.1  08-Oct-2008  yamt file ufs_wapbl.h was added on branch yamt-nfs-mp on 2009-05-04 08:14:39 +0000
 1.7.16.1  18-May-2014  rmind sync with head
 1.7.12.2  03-Dec-2017  jdolecek update from HEAD
 1.7.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.2.1  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.8.6.2  05-Dec-2016  skrll Sync with HEAD
 1.8.6.1  29-May-2016  skrll Sync with HEAD
 1.11.2.2  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.11.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.14.16.2  21-Apr-2020  martin Sync with HEAD
 1.14.16.1  10-Jun-2019  christos Sync with HEAD
 1.14.14.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.18.2.1  20-Apr-2020  bouyer Sync with HEAD

RSS XML Feed