2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 18:53:52 +08:00
linux-next/drivers/md
Joe Thornber cc8394d86f dm thin: provide userspace access to pool metadata
This patch implements two new messages that can be sent to the thin
pool target allowing it to take a snapshot of the _metadata_.  This,
read-only snapshot can be accessed by userland, concurrently with the
live target.

Only one metadata snapshot can be held at a time.  The pool's status
line will give the block location for the current msnap.

Since version 0.1.5 of the userland thin provisioning tools, the
thin_dump program displays the msnap as follows:

    thin_dump -m <msnap root> <metadata dev>

Available here: https://github.com/jthornber/thin-provisioning-tools

Now that userland can access the metadata we can do various things
that have traditionally been kernel side tasks:

     i) Incremental backups.

     By using metadata snapshots we can work out what blocks have
     changed over time.  Combined with data snapshots we can ensure
     the data doesn't change while we back it up.

     A short proof of concept script can be found here:

     https://github.com/jthornber/thinp-test-suite/blob/master/incremental_backup_example.rb

     ii) Migration of thin devices from one pool to another.

     iii) Merging snapshots back into an external origin.

     iv) Asyncronous replication.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
2012-06-03 00:30:01 +01:00
..
persistent-data dm thin: provide userspace access to pool metadata 2012-06-03 00:30:01 +01:00
bitmap.c md/bitmap: fix calculation of 'chunks' - missing shift. 2012-05-04 17:03:18 +10:00
bitmap.h md/bitmap: fix calculation of 'chunks' - missing shift. 2012-05-04 17:03:18 +10:00
dm-bio-record.h dm: preserve bi_io_vec when resubmitting bios 2009-04-02 19:55:23 +01:00
dm-bufio.c dm bufio: prefetch 2012-03-28 18:41:29 +01:00
dm-bufio.h dm bufio: prefetch 2012-03-28 18:41:29 +01:00
dm-crypt.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-delay.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-exception-store.c dm exception store: fix init error path 2012-03-28 18:41:22 +01:00
dm-exception-store.h dm snapshot: test chunk size against both origin and snapshot 2010-08-12 04:13:51 +01:00
dm-flakey.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-io.c dm io: fix discard support 2012-03-07 19:09:37 +00:00
dm-ioctl.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-kcopyd.c dm kcopyd: add dm_kcopyd_zero to zero an area 2011-10-31 20:18:58 +00:00
dm-linear.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-log-userspace-base.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
dm-log-userspace-transfer.c connector/userns: replace netlink uses of cap_raised() with capable() 2012-05-10 23:21:39 -04:00
dm-log-userspace-transfer.h dm log: userspace add luid to distinguish between concurrent log instances 2009-09-04 20:40:34 +01:00
dm-log.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-mpath.c dm mpath: allow ioctls to trigger pg init 2012-06-03 00:29:58 +01:00
dm-mpath.h dm mpath: remove is_active from struct dm_path 2008-10-10 13:36:58 +01:00
dm-path-selector.c md: Add module.h to all files using it implicitly 2011-10-31 19:31:18 -04:00
dm-path-selector.h dm mpath: add start_io and nr_bytes to path selectors 2009-06-22 10:12:27 +01:00
dm-queue-length.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-raid1.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-raid.c DM RAID: Use safe version of rdev_for_each 2012-04-24 10:23:13 +10:00
dm-region-hash.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dm-round-robin.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-service-time.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-snap-persistent.c md: Add in export.h for files using EXPORT_SYMBOL 2011-10-31 19:31:19 -04:00
dm-snap-transient.c md: Add in export.h for files using EXPORT_SYMBOL 2011-10-31 19:31:19 -04:00
dm-snap.c dm snapshot: skip reading origin when overwriting complete chunk 2011-08-02 12:32:04 +01:00
dm-stripe.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-sysfs.c Driver core: Constify struct sysfs_ops in struct kobj_type 2010-03-07 17:04:49 -08:00
dm-table.c dm: reject trailing characters in sccanf input 2012-03-28 18:41:26 +01:00
dm-target.c dm: error return error for discards 2010-08-12 04:14:14 +01:00
dm-thin-metadata.c dm thin: provide userspace access to pool metadata 2012-06-03 00:30:01 +01:00
dm-thin-metadata.h dm thin: provide userspace access to pool metadata 2012-06-03 00:30:01 +01:00
dm-thin.c dm thin: provide userspace access to pool metadata 2012-06-03 00:30:01 +01:00
dm-uevent.c md: Add in export.h for files using EXPORT_SYMBOL 2011-10-31 19:31:19 -04:00
dm-uevent.h
dm-verity.c dm: add verity target 2012-03-28 18:43:38 +01:00
dm-zero.c dm: zero silently drop discards 2010-08-12 04:14:12 +01:00
dm.c dm: clear bi_end_io on remapping failure 2012-03-28 18:41:25 +01:00
dm.h dm table: add immutable feature 2011-10-31 20:19:04 +00:00
faulty.c md: tidy up rdev_for_each usage. 2012-03-19 12:46:39 +11:00
Kconfig dm: add verity target 2012-03-28 18:43:38 +01:00
linear.c md/linear: If md_integrity_register() fails, linear_run() must free the mem. 2012-04-02 09:48:37 +10:00
linear.h md/linear: typedef removal: linear_conf_t -> struct linear_conf 2011-10-11 16:48:54 +11:00
Makefile dm: add verity target 2012-03-28 18:43:38 +01:00
md.c MD: Add del_timer_sync to mddev_suspend (fix nasty panic) 2012-05-17 10:38:24 +10:00
md.h md/raid10: handle merge_bvec_fn in member devices. 2012-03-19 12:46:39 +11:00
multipath.c md: tidy up rdev_for_each usage. 2012-03-19 12:46:39 +11:00
multipath.h md/multipath: typedef removal: multipath_conf_t -> struct mpconf 2011-10-11 16:48:57 +11:00
raid0.c md: Avoid OOPS when reshaping raid1 to raid0 2012-04-03 15:37:26 +10:00
raid0.h md: add proper merge_bvec handling to RAID0 and Linear. 2012-03-19 12:46:39 +11:00
raid1.c md/raid1,raid10: Fix calculation of 'vcnt' when processing error recovery. 2012-04-12 16:04:47 +10:00
raid1.h md/raid1: Allocate spare to store replacement devices and their bios. 2011-12-23 10:17:56 +11:00
raid5.c md/raid5: Fix a bug about judging if the operation is syncing or replacing 2012-04-03 15:37:38 +10:00
raid5.h md/raid5: detect and handle replacements during recovery. 2011-12-23 10:17:53 +11:00
raid10.c md/raid10: fix transcription error in calc_sectors conversion. 2012-05-19 09:01:13 +10:00
raid10.h md/raid10: prepare data structures for handling replacement. 2011-12-23 10:17:54 +11:00