Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 30352
b: refs/heads/master
c: c2ade42
h: refs/heads/master
v: v3
  • Loading branch information
David Teigland authored and Linus Torvalds committed Jun 26, 2006
1 parent fbca1e5 commit 82db05e
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 17b2f66f2a39a4e4d1ed456f35ee3bb598e41d35
refs/heads/master: c2ade42dd35466d90aa6fc7cc717f396e165492f
38 changes: 38 additions & 0 deletions trunk/drivers/md/dm-table.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,44 @@ int dm_table_create(struct dm_table **result, int mode,
return 0;
}

int dm_create_error_table(struct dm_table **result, struct mapped_device *md)
{
struct dm_table *t;
sector_t dev_size = 1;
int r;

/*
* Find current size of device.
* Default to 1 sector if inactive.
*/
t = dm_get_table(md);
if (t) {
dev_size = dm_table_get_size(t);
dm_table_put(t);
}

r = dm_table_create(&t, FMODE_READ, 1, md);
if (r)
return r;

r = dm_table_add_target(t, "error", 0, dev_size, NULL);
if (r)
goto out;

r = dm_table_complete(t);
if (r)
goto out;

*result = t;

out:
if (r)
dm_table_put(t);

return r;
}
EXPORT_SYMBOL_GPL(dm_create_error_table);

static void free_devices(struct list_head *devices)
{
struct list_head *tmp, *next;
Expand Down
6 changes: 6 additions & 0 deletions trunk/include/linux/device-mapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -227,5 +227,11 @@ void dm_table_event(struct dm_table *t);
*/
int dm_swap_table(struct mapped_device *md, struct dm_table *t);

/*
* Prepare a table for a device that will error all I/O.
* To make it active, call dm_suspend(), dm_swap_table() then dm_resume().
*/
int dm_create_error_table(struct dm_table **result, struct mapped_device *md);

#endif /* __KERNEL__ */
#endif /* _LINUX_DEVICE_MAPPER_H */

0 comments on commit 82db05e

Please sign in to comment.