Home | History | Annotate | Download | only in dm
History log of /src/sys/dev/dm/dm_target_mirror.c
RevisionDateAuthorComments
 1.24  21-Jan-2020  tkusumi dm: #if0 target's ->upcall() handler

This is part of NetBSD's dm design, but unimplemented
(all handlers return 0) and also unused.
 1.23  21-Dec-2019  tkusumi branches: 1.23.2;
dm: Remove target's ->deps() by implementing deps in dm core

Retrieving device dependencies doesn't need to be target specific.
The reason it currently needs ->deps() is because dm core doesn't
have data structure that allows table to walk through target's
underlying devices. Add struct dm_mapping to be able to do this,
and remove ->deps()'s from targets which basically do the same thing.

=====(A) before this commit
table
| [dm core]
-------------------------------------------------------
| pdev pdev pdev [dm targets]
v ^ ^ ^
target----/---------/---------/
(void*)

=====(B) this commit
table---->mapping-->mapping-->mapping-->...
| | | |
| v v v [dm core]
-------------------------------------------------------
| pdev pdev pdev [dm targets]
v ^ ^ ^
target----/---------/---------/
(void*)

taken-from: DragonFlyBSD
 1.22  15-Dec-2019  tkusumi dm: Style cleanups (no functional changes)
 1.21  15-Dec-2019  tkusumi dm: Make targets' ->secsize() optional

and make a caller assume secsize 0 if ->secsize not present.
This allows a dummy function to be removed which was added in
"dm: Add dummy target ->sync()/->secsize() to prevent panic on modload(8)".
 1.20  15-Dec-2019  tkusumi dm: Rename targets' ->status() to ->table() given ->info() exists

Since now that dm targets in NetBSD have ->info() for "status",
->status() should be renamed to ->table() for "table",
given how dm target status was originally designed in Linux kernel.

taken-from: DragonFlyBSD
 1.19  14-Dec-2019  tkusumi dm: Remove unconditional debug prints in targets' ->strategy()

Having debug prints in ->strategy() by default just to tell ->strategy()
is called is overkill.
taken-from: DragonFlyBSD
 1.18  12-Dec-2019  tkusumi dm: Make target's ->init() take parsed argc and argv

This gets rid of the same parser code in each target using strsep(3).
taken-from: DragonFlyBSD
 1.17  08-Dec-2019  tkusumi dm: Add dummy target ->sync()/->secsize() to prevent panic on modload(8)

dm_target_insert() has assertions to ensure targets implement all handlers.
Adding dummy ones at least prevents panic on modload(8).
 1.16  08-Dec-2019  tkusumi dm: Move targets specific structs to .c files

These don't need to be defined and exposed in dm.h.
 1.15  08-Dec-2019  tkusumi dm: Refactor target's ->init() i/f

Take dm_table_entry_t* instead of void**.
Remove dm_dev_t* unneeded by target code.
No functional change, but for future changes.

taken-from: DragonFlyBSD
 1.14  07-Dec-2019  tkusumi dm: Fix strange pointer declarations

Should be "type *name" or "type* name", but not "type * name".
taken-from: DragonFlyBSD
 1.13  06-Dec-2019  tkusumi dm: Don't ignore dm_target_alloc() argument

dm_target_alloc() is supposed to be copying the name argument to its ->name.
taken-from: DragonFlyBSD
 1.12  05-Dec-2019  tkusumi dm: Make dm core set config to NULL after destroy

Just let dm core do this instead of having a comment expecting each
target to do the right thing.

taken-from: DragonFlyBSD
 1.11  01-Dec-2019  tkusumi dm: Remove unused dm_dev::dev_type

Given OOP-like architecture of dm target device structure,
dm_dev doesn't need to have self contained target type field,
and in fact this is unused.
 1.10  05-Jan-2018  christos branches: 1.10.4;
use some size_t, add whitespace between functions, rcsids.
 1.9  18-May-2010  haad Add support for DIOCCACHESYNC ioctl for dm devices. Add new sync function
pointer to dm_target_t because that is the only part of dm which know real
block device. disk_ioctl_switch parses whole device table and for every
entry it calls particular sync routine which propagates DIOCCACHESYNC
to real disk.

While I was here implement some KNF fixes and remove unneeded symbols from
dm.h.

Problem reported on port-xen@ by Hugo Silva.
 1.8  04-Jan-2010  haad branches: 1.8.2; 1.8.4;
Indent files remove unnecessary blank lines, white spaces and KNFize code.
 1.7  01-Dec-2009  haad Revert my commit which have added knowledge about dm targets to libdevmapper,
this breaks abstraction. Because only lvmtools/lvmlib and device-mapper can
have knowledge about target mapping and libdevmapper only passes requests
from lvmtools to kernel and back. Bump major library and driver version.

Requested by: yamt@
 1.6  05-Jun-2009  haad Parse dm param string in libdevmapper and not in a dm target init function.
Create proplib param dictionary entry in libdevmapper and pass it to dm in
dm_ioctl dict.
Param target is then passed to target init function, where is parse. I like
this aproach much better than passing char **argv and trusting to user input.

I have bumped minor lib/driver version.

XXX. Add more sanity checks in kernel.
 1.5  01-Mar-2009  haad branches: 1.5.2;
Change comment and add description of line used to configure mirror device.
 1.4  19-Feb-2009  haad Add support for autoloading of device-mapper targets modules. Add
dm_target_autoload function which tries to load target module. Fix two
deadlocks in dm_table_load_ioctl error path(I forgot to call dm_dev_unbusy).
 1.3  14-Jan-2009  haad branches: 1.3.2; 1.3.4; 1.3.6;
Add dm module as dependency and remove module_hold/module_rele calls.
 1.2  02-Jan-2009  haad Return ENOSYS during from dm_target_init routine these tow targets aren't
implemented yet.
 1.1  02-Jan-2009  haad Add stubs for mirror target, too. This target does nothing for now, but lvm
tools support mirror target and trying to create LV with mirrorred backend
caused panic in dm_table_load_ioctl.
 1.3.6.2  23-Jul-2009  jym Sync with HEAD.
 1.3.6.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.3.4.3  03-Mar-2009  skrll Sync with HEAD.
 1.3.4.2  19-Jan-2009  skrll Sync with HEAD.
 1.3.4.1  14-Jan-2009  skrll file dm_target_mirror.c was added on branch nick-hppapmap on 2009-01-19 13:17:53 +0000
 1.3.2.2  17-Jan-2009  mjf Sync with HEAD.
 1.3.2.1  14-Jan-2009  mjf file dm_target_mirror.c was added on branch mjf-devfs2 on 2009-01-17 13:28:53 +0000
 1.5.2.5  11-Aug-2010  yamt sync with head.
 1.5.2.4  11-Mar-2010  yamt sync with head
 1.5.2.3  20-Jun-2009  yamt sync with head
 1.5.2.2  04-May-2009  yamt sync with head.
 1.5.2.1  01-Mar-2009  yamt file dm_target_mirror.c was added on branch yamt-nfs-mp on 2009-05-04 08:12:36 +0000
 1.8.4.1  30-May-2010  rmind sync with head
 1.8.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.10.4.1  08-Apr-2020  martin Merge changes from current as of 20200406
 1.23.2.1  25-Jan-2020  ad Sync with head.

RSS XML Feed