| /* |
| * Copyright (C) 2001-2002 Sistina Software (UK) Limited. |
| * Copyright (C) 2006-2008 Red Hat GmbH |
| * |
| * This file is released under the GPL. |
| */ |
| |
| #include "dm-exception-store.h" |
| |
| #include <linux/mm.h> |
| #include <linux/pagemap.h> |
| #include <linux/vmalloc.h> |
| #include <linux/slab.h> |
| |
| #define DM_MSG_PREFIX "snapshot exception stores" |
| |
| int dm_exception_store_init(void) |
| { |
| int r; |
| |
| r = dm_transient_snapshot_init(); |
| if (r) { |
| DMERR("Unable to register transient exception store type."); |
| goto transient_fail; |
| } |
| |
| r = dm_persistent_snapshot_init(); |
| if (r) { |
| DMERR("Unable to register persistent exception store type"); |
| goto persistent_fail; |
| } |
| |
| return 0; |
| |
| persistent_fail: |
| dm_persistent_snapshot_exit(); |
| transient_fail: |
| return r; |
| } |
| |
| void dm_exception_store_exit(void) |
| { |
| dm_persistent_snapshot_exit(); |
| dm_transient_snapshot_exit(); |
| } |