Home | History | Annotate | Download | only in dev
History log of /src/sys/dev/fssvar.h
RevisionDateAuthorComments
 1.32  20-Feb-2019  hannken Make FSS_ERROR a flag to prevent bogus fscow_disestablish() after error.
 1.31  29-Aug-2018  hannken Add two new states FSS_CREATING and FSS_DESTROYING and use them
while creating or destroying a snapshot.

Remove now unneeded sc_lock that made fss_ioctl mutually exclusive.

Fss_ioctl no longer blocks forever because a snapshot gets
created or destroyed.

Serialize snapshot creation and make it interruptible.
 1.30  29-Aug-2018  hannken Convert flags FSS_ACTIVE and FSS_ERROR into new member sc_state
with states FSS_IDLE, FSS_ACTIVE and FSS_ERROR.

No functional change intended.
 1.29  06-Sep-2015  dholland branches: 1.29.10; 1.29.16; 1.29.18;
More on PR 41200: headers that declare ioctls should include sys/ioccom.h.
This covers (I think) all the MI headers outside of external/ (and dist/).
 1.28  28-Feb-2014  skrll branches: 1.28.6;
G/C sys/simplelock.h includes
 1.27  29-Nov-2011  bouyer branches: 1.27.8; 1.27.12;
Complete backward compat with NetBSd 5.x: time_t changed size, so did
struct timeval, and so did struct fss_get. So we need a compat FSSIOCGET50
ioctl.
 1.26  29-Nov-2011  bouyer Fix FSSIOCSET50: needs to use the 5.0 struct fss_set, not the current one.
 1.25  24-Feb-2011  hannken branches: 1.25.4;
fss(4): Allow FSSIOCSET to set the initial flags. Add a new flag
"FSS_UNLINK_ON_CREATE" to unlink the backing store before
the snapshot gets created.

With this change dump(8) no longer dumps the zero-sized, but named
snapshot it is working on. Same applies to fsck_ffs(8).
 1.24  05-Apr-2010  hannken branches: 1.24.2; 1.24.4;
Remove unused fss_softc member sc_bs_size.
 1.23  17-Sep-2008  hannken branches: 1.23.4; 1.23.14; 1.23.16;
Replace the fss unmount hook with a vfs_hook.

fssvar.h: struct device * -> device_t.
fss.c: establish unmount hook on first attach, remove on last detach.
vfs_syscalls.c: remove the call of fss_umount_hook().
vfs_trans.c: destroy cow handlers on unmount as fstrans_unmount() will be
called before vfs_hooks.
 1.22  14-Sep-2008  hannken Create fss(4) devices on first open and destroy on last close of an
unconfigured device. That removes the compile-time constant number
of useable devices.
While here, add disk_busy()/disk_unbusy() instrumentation.

Reviewed by: Quentin Garnier <cube@netbsd.org>
 1.21  12-Sep-2008  hannken - Replace simple_lock/ltsleep/wakeup with mutex/cv.
- Replace malloc/free with kmem_alloc/kmem_free.
- Use bdev_ioctl() instead of bdevsw_lookup()/(*d_ioctl)().
- Be more fair to readers by cleaning the cache one slot at a time.
 1.20  11-Sep-2008  hannken fss_copy_on_write(): return error if reading the snapshotted device failed.
fss_read_cluster(): use nestiobuf for reading.
fss_bs_thread(): dont read the snapshotted device if a request is
completely covered by backing store.
 1.19  28-Apr-2008  martin branches: 1.19.2; 1.19.6;
Remove clause 3 and 4 from TNF licenses
 1.18  04-Jan-2008  xtraeme branches: 1.18.6; 1.18.8; 1.18.10;
sys/simplelock.h is required now.
 1.17  07-Oct-2007  hannken branches: 1.17.4; 1.17.10;
Update the file system copy-on-write handler.

- Instead of hooking the handler on the specdev of a mounted file system
hook directly on the `struct mount'.

- Rename from `vn_cow_*' to `fscow_*' and move to `kern/vfs_trans.c'. Use
`mount_*specific' instead of clobbering `struct mount' or `struct specinfo'.

- Replace the hand-made reader/writer lock with a krwlock.

- Keep `vn_cow_*' functions and mark as obsolete.

- Welcome to NetBSD 4.99.32 - `struct specinfo' changed size.

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
 1.16  09-Jul-2007  ad branches: 1.16.6; 1.16.8; 1.16.10;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.15  04-Mar-2007  christos branches: 1.15.2; 1.15.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.14  15-Feb-2007  ad branches: 1.14.2;
Replace some uses of lockmgr() / simplelocks.
 1.13  14-Mar-2006  chs use lockmgr() instead of bespoke code for mutual exclusion in fss_ioctl().
only take the lock when we actually need it (and particularly not for
unknown cmds that are just going to fail immediately). fixes PR 33060.
 1.12  11-Dec-2005  christos branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10;
merge ktrace-lwp.
 1.11  24-Oct-2005  hannken Run all i/o from or to backing store through fss_bs_io().
Replace VOP_BMAP()/VOP_BALLOC() by vn_rdwr()/VOP_PUTPAGES().

Inspired by discussion on tech-kern@
 1.10  15-Oct-2005  yamt branches: 1.10.2;
- change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.9  17-Apr-2005  hannken branches: 1.9.2;
Support user controllable flags for the snapshot driver:
- Add FSSIOFSET and FSSIOFGET ioctl() to set/get the flags.
- Add FSS_UNCONFIG_ON_CLOSE flag to unconfigure the snapshot device
on the last close.

Reviewed by: Jason R. Thorpe <thorpej@netbsd.org>
 1.8  27-Feb-2005  perry branches: 1.8.2;
nuke trailing whitespace
 1.7  29-Oct-2004  hannken branches: 1.7.4; 1.7.6;
Move the inclusion of <sys/bufq.h> from fss.c to fssvar.h to make
an FSS-enabled kernel compile again.
 1.6  25-May-2004  hannken branches: 1.6.2;
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.

- Not enabled by default. Needs kernel option FFS_SNAPSHOT.
- Change parameters of ffs_blkfree.
- Let the copy-on-write functions return an error so spec_strategy
may fail if the copy-on-write fails.
- Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock.
- Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer.
- Add a function ffs_checkfreefile needed for snapshot creation.
- Add special handling of snapshot files:
Snapshots may not be opened for writing and the attributes are read-only.
Use the mtime as the time this snapshot was taken.
Deny mtime updates for snapshot files.
- Add function transferlockers to transfer any waiting processes from
one lock to another.
- Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through
a vnode.
- Add snapshot support to ls, fsck_ffs and dump.

Welcome to 2.0F.

Approved by: Jason R. Thorpe <thorpej@netbsd.org>
 1.5  24-Feb-2004  wiz occured -> occurred. From Peter Postma.
 1.4  14-Feb-2004  hannken Add a generic copy-on-write hook to add/remove functions that will be
called with every buffer written through spec_strategy().

Used by fss(4). Future file-system-internal snapshots will need them too.

Welcome to 1.6ZK

Approved by: Jason R. Thorpe <thorpej@netbsd.org>
 1.3  25-Jan-2004  hannken Make VOP_STRATEGY(bp) a real VOP as discussed on tech-kern.

VOP_STRATEGY(bp) is replaced by one of two new functions:

- VOP_STRATEGY(vp, bp) Call the strategy routine of vp for bp.
- DEV_STRATEGY(bp) Call the d_strategy routine of bp->b_dev for bp.

DEV_STRATEGY(bp) is used only for block-to-block device situations.
 1.2  11-Jan-2004  hannken Update the file system snapshot driver:
- Document the kernel thread.
- Rename some functions and variables.
- Return EROFS where appropriate.
- Use shifts instead of 64-bit divide.
- Use a simple_lock to make it MP-safe.
- Add M_CANFAIL to malloc to avoid panic on large cluster size.
- Allow sparse file for backing store and use VOP_BALLOC() to allocate
space. Default size of backing store is the size of the file system.
 1.1  10-Dec-2003  hannken The file system snapshot pseudo driver.

Uses a hook in spec_strategy() to save data written from a mounted
file system to its block device and a hook in dounmount().

Not enabled by default in any kernel config.

Approved by: Frank van der Linden <fvdl@netbsd.org>
 1.6.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.6.2.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.6.2.5  02-Nov-2004  skrll Sync with HEAD.
 1.6.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.6.2.2  03-Aug-2004  skrll Sync with HEAD
 1.6.2.1  25-May-2004  skrll file fssvar.h was added on branch ktrace-lwp on 2004-08-03 10:44:54 +0000
 1.7.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.7.4.1  29-Apr-2005  kent sync with -current
 1.8.2.2  17-Mar-2006  tron Pull up following revision(s) (requested by chs in ticket #1202):
sys/dev/fssvar.h: revision 1.13 via patch
sys/dev/fss.c: revision 1.23 via patch
use lockmgr() instead of bespoke code for mutual exclusion in fss_ioctl().
only take the lock when we actually need it (and particularly not for
unknown cmds that are just going to fail immediately). fixes PR 33060.
 1.8.2.1  21-Apr-2005  tron Pull up revision 1.9 (requested by hannken in ticket #184):
Support user controllable flags for the snapshot driver:
- Add FSSIOFSET and FSSIOFGET ioctl() to set/get the flags.
- Add FSS_UNCONFIG_ON_CLOSE flag to unconfigure the snapshot device
on the last close.
Reviewed by: Jason R. Thorpe <thorpej@netbsd.org>
 1.9.2.5  21-Jan-2008  yamt sync with head
 1.9.2.4  27-Oct-2007  yamt sync with head.
 1.9.2.3  03-Sep-2007  yamt sync with head.
 1.9.2.2  26-Feb-2007  yamt sync with head.
 1.9.2.1  21-Jun-2006  yamt sync with head.
 1.10.2.1  26-Oct-2005  yamt sync with head
 1.12.10.1  19-Apr-2006  elad sync with head.
 1.12.8.1  01-Apr-2006  yamt sync with head.
 1.12.6.1  22-Apr-2006  simonb Sync with head.
 1.12.4.1  09-Sep-2006  rpaulo sync with head
 1.14.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.15.4.1  11-Jul-2007  mjf Sync with head.
 1.15.2.2  09-Oct-2007  ad Sync with head.
 1.15.2.1  09-Apr-2007  ad - Add two new arguments to kthread_create1: pri_t pri, bool mpsafe.
- Fork kthreads off proc0 as new LWPs, not new processes.
 1.16.10.1  14-Oct-2007  yamt sync with head.
 1.16.8.2  09-Jan-2008  matt sync with HEAD
 1.16.8.1  06-Nov-2007  matt sync with HEAD
 1.16.6.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.17.10.1  08-Jan-2008  bouyer Sync with HEAD
 1.17.4.1  18-Feb-2008  mjf Sync with HEAD.
 1.18.10.3  11-Aug-2010  yamt sync with head.
 1.18.10.2  04-May-2009  yamt sync with head.
 1.18.10.1  16-May-2008  yamt sync with head.
 1.18.8.1  18-May-2008  yamt sync with head.
 1.18.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.18.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.19.6.1  19-Oct-2008  haad Sync with HEAD.
 1.19.2.1  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.23.16.2  05-Mar-2011  rmind sync with head
 1.23.16.1  30-May-2010  rmind sync with head
 1.23.14.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.23.4.2  25-Jan-2012  riz Pull up following revision(s) (requested by bouyer in ticket #1700):
sys/dev/fss.c: revision 1.79
sys/dev/fssvar.h: revision 1.26
Fix FSSIOCSET50: needs to use the 5.0 struct fss_set, not the current one.
 1.23.4.1  18-Jun-2011  bouyer Pull up following revision(s) (requested by hannken in ticket #1627):
sys/kern/vfs_wapbl.c: revisions 1.41-1.42
sbin/dump/snapshot.c: revisions 1.6 (patch)
share/man/man4/fss.4: revisions 1.15 (patch)
sys/dev/fss.c: revisions 1.73 (patch)
sys/dev/fssvar.h: revisions 1.25
usr.sbin/fssconfig/fssconfig.c: revisions 1.7
sys/ufs/ffs/ffs_balloc.c: revisions 1.54
sys/ufs/ffs/ffs_snapshot.c: revisions 1.90, 1.98, 1.100-1.101, 1.103-1.110, 1.111, 1.112-1.115 (patch)

- Try to keep snapshot indirect blocks contiguous. This speeds up snapshot
creation by a factor of ~3 and reduces the file system suspension time by
a factor of ~5.

- Refine the scope of WAPBL transactions and the limit for deallocations in
one transaction so we should no longer get a "wapbl_flush: current
transaction too big to flush" panic when creating or removing snapshots
on larger logging disks.

- fss(4): Allow FSSIOCSET to set the initial flags. Add a new flag
"FSS_UNLINK_ON_CREATE" to unlink the backing store before the snapshot
gets created. With this change dump(8) no longer dumps the zero-sized,
but named snapshot it is working on.
 1.24.4.1  05-Mar-2011  bouyer Sync with HEAD
 1.24.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.25.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.25.4.1  17-Apr-2012  yamt sync with head
 1.27.12.1  18-May-2014  rmind sync with head
 1.27.8.2  03-Dec-2017  jdolecek update from HEAD
 1.27.8.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.28.6.1  22-Sep-2015  skrll Sync with HEAD
 1.29.18.1  10-Jun-2019  christos Sync with HEAD
 1.29.16.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.29.10.1  01-Sep-2018  martin Pull up following revision(s) (requested by hannken in ticket #999):

sys/dev/fssvar.h: revision 1.30
sys/dev/fssvar.h: revision 1.31
sys/dev/fss.c: revision 1.105
sys/dev/fss.c: revision 1.106

Convert flags FSS_ACTIVE and FSS_ERROR into new member sc_state
with states FSS_IDLE, FSS_ACTIVE and FSS_ERROR.

No functional change intended.


Add two new states FSS_CREATING and FSS_DESTROYING and use them
while creating or destroying a snapshot.

Remove now unneeded sc_lock that made fss_ioctl mutually exclusive.
Fss_ioctl no longer blocks forever because a snapshot gets
created or destroyed.

Serialize snapshot creation and make it interruptible.

RSS XML Feed