diff options
Diffstat (limited to 'ANDROID_3.4.5/drivers/md/dm-zero.c')
-rw-r--r-- | ANDROID_3.4.5/drivers/md/dm-zero.c | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/ANDROID_3.4.5/drivers/md/dm-zero.c b/ANDROID_3.4.5/drivers/md/dm-zero.c deleted file mode 100644 index cc2b3cb8..00000000 --- a/ANDROID_3.4.5/drivers/md/dm-zero.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2003 Christophe Saout <christophe@saout.de> - * - * This file is released under the GPL. - */ - -#include <linux/device-mapper.h> - -#include <linux/module.h> -#include <linux/init.h> -#include <linux/bio.h> - -#define DM_MSG_PREFIX "zero" - -/* - * Construct a dummy mapping that only returns zeros - */ -static int zero_ctr(struct dm_target *ti, unsigned int argc, char **argv) -{ - if (argc != 0) { - ti->error = "No arguments required"; - return -EINVAL; - } - - /* - * Silently drop discards, avoiding -EOPNOTSUPP. - */ - ti->num_discard_requests = 1; - - return 0; -} - -/* - * Return zeros only on reads - */ -static int zero_map(struct dm_target *ti, struct bio *bio, - union map_info *map_context) -{ - switch(bio_rw(bio)) { - case READ: - zero_fill_bio(bio); - break; - case READA: - /* readahead of null bytes only wastes buffer cache */ - return -EIO; - case WRITE: - /* writes get silently dropped */ - break; - } - - bio_endio(bio, 0); - - /* accepted bio, don't make new request */ - return DM_MAPIO_SUBMITTED; -} - -static struct target_type zero_target = { - .name = "zero", - .version = {1, 0, 0}, - .module = THIS_MODULE, - .ctr = zero_ctr, - .map = zero_map, -}; - -static int __init dm_zero_init(void) -{ - int r = dm_register_target(&zero_target); - - if (r < 0) - DMERR("register failed %d", r); - - return r; -} - -static void __exit dm_zero_exit(void) -{ - dm_unregister_target(&zero_target); -} - -module_init(dm_zero_init) -module_exit(dm_zero_exit) - -MODULE_AUTHOR("Christophe Saout <christophe@saout.de>"); -MODULE_DESCRIPTION(DM_NAME " dummy target returning zeros"); -MODULE_LICENSE("GPL"); |