diff options
author | Corentin Chary <corentincj@iksaif.net> | 2009-01-05 08:46:19 -0500 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-01-18 07:02:08 -0500 |
commit | c3da23be1673be4e738aea235604b4e6cb259655 (patch) | |
tree | 876a7f8625e2c733bd87f58f1980e9b40031f8a0 | |
parent | 141e6ebd1b1759bd5cebf092b7216b6f1c7b4c4f (diff) |
UBI: add ioctl for unmap operation
This patch adds ioctl for the LEB unmap operation (as a debugging
option so far).
[Re-named ioctl to make it look the same as the other one and made
some minor stylistic changes. Artem Bityutskiy.]
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r-- | drivers/mtd/ubi/cdev.c | 15 | ||||
-rw-r--r-- | include/mtd/ubi-user.h | 3 |
2 files changed, 16 insertions, 2 deletions
diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c index 055e3f563c13..fd7e0f923b38 100644 --- a/drivers/mtd/ubi/cdev.c +++ b/drivers/mtd/ubi/cdev.c | |||
@@ -532,13 +532,26 @@ static int vol_cdev_ioctl(struct inode *inode, struct file *file, | |||
532 | err = ubi_leb_map(desc, req.lnum, req.dtype); | 532 | err = ubi_leb_map(desc, req.lnum, req.dtype); |
533 | break; | 533 | break; |
534 | } | 534 | } |
535 | |||
536 | /* Logical eraseblock un-map command */ | ||
537 | case UBI_IOCEBUNMAP: | ||
538 | { | ||
539 | int32_t lnum; | ||
540 | |||
541 | err = get_user(lnum, (__user int32_t *)argp); | ||
542 | if (err) { | ||
543 | err = -EFAULT; | ||
544 | break; | ||
545 | } | ||
546 | err = ubi_leb_unmap(desc, lnum); | ||
547 | break; | ||
548 | } | ||
535 | #endif | 549 | #endif |
536 | 550 | ||
537 | default: | 551 | default: |
538 | err = -ENOTTY; | 552 | err = -ENOTTY; |
539 | break; | 553 | break; |
540 | } | 554 | } |
541 | |||
542 | return err; | 555 | return err; |
543 | } | 556 | } |
544 | 557 | ||
diff --git a/include/mtd/ubi-user.h b/include/mtd/ubi-user.h index 758574039fca..ee2ea2e224af 100644 --- a/include/mtd/ubi-user.h +++ b/include/mtd/ubi-user.h | |||
@@ -135,7 +135,8 @@ | |||
135 | #define UBI_IOCEBCH _IOW(UBI_VOL_IOC_MAGIC, 2, int32_t) | 135 | #define UBI_IOCEBCH _IOW(UBI_VOL_IOC_MAGIC, 2, int32_t) |
136 | /* Map an eraseblock, used for debugging, disabled by default */ | 136 | /* Map an eraseblock, used for debugging, disabled by default */ |
137 | #define UBI_IOCEBMAP _IOW(UBI_VOL_IOC_MAGIC, 3, struct ubi_map_req) | 137 | #define UBI_IOCEBMAP _IOW(UBI_VOL_IOC_MAGIC, 3, struct ubi_map_req) |
138 | 138 | /* Unmap an eraseblock, used for debugging, disabled by default */ | |
139 | #define UBI_IOCEBUNMAP _IOW(UBI_VOL_IOC_MAGIC, 4, int32_t) | ||
139 | 140 | ||
140 | /* Maximum MTD device name length supported by UBI */ | 141 | /* Maximum MTD device name length supported by UBI */ |
141 | #define MAX_UBI_MTD_NAME_LEN 127 | 142 | #define MAX_UBI_MTD_NAME_LEN 127 |