diff options
-rw-r--r-- | drivers/mtd/devices/block2mtd.c | 2 | ||||
-rw-r--r-- | drivers/mtd/mtdcore.c | 26 | ||||
-rw-r--r-- | fs/jffs2/writev.c | 6 | ||||
-rw-r--r-- | include/linux/mtd/mtd.h | 16 |
4 files changed, 27 insertions, 23 deletions
diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c index b78f23169d4e..c16f6b4e8938 100644 --- a/drivers/mtd/devices/block2mtd.c +++ b/drivers/mtd/devices/block2mtd.c | |||
@@ -288,7 +288,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size) | |||
288 | dev->mtd.flags = MTD_CAP_RAM; | 288 | dev->mtd.flags = MTD_CAP_RAM; |
289 | dev->mtd.erase = block2mtd_erase; | 289 | dev->mtd.erase = block2mtd_erase; |
290 | dev->mtd.write = block2mtd_write; | 290 | dev->mtd.write = block2mtd_write; |
291 | dev->mtd.writev = default_mtd_writev; | 291 | dev->mtd.writev = mtd_writev; |
292 | dev->mtd.sync = block2mtd_sync; | 292 | dev->mtd.sync = block2mtd_sync; |
293 | dev->mtd.read = block2mtd_read; | 293 | dev->mtd.read = block2mtd_read; |
294 | dev->mtd.priv = dev; | 294 | dev->mtd.priv = dev; |
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 53a200f722b6..4d0f3e557bd1 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c | |||
@@ -696,8 +696,8 @@ EXPORT_SYMBOL_GPL(__put_mtd_device); | |||
696 | * This function returns zero in case of success and a negative error code in | 696 | * This function returns zero in case of success and a negative error code in |
697 | * case of failure. | 697 | * case of failure. |
698 | */ | 698 | */ |
699 | int default_mtd_writev(struct mtd_info *mtd, const struct kvec *vecs, | 699 | static int default_mtd_writev(struct mtd_info *mtd, const struct kvec *vecs, |
700 | unsigned long count, loff_t to, size_t *retlen) | 700 | unsigned long count, loff_t to, size_t *retlen) |
701 | { | 701 | { |
702 | unsigned long i; | 702 | unsigned long i; |
703 | size_t totlen = 0, thislen; | 703 | size_t totlen = 0, thislen; |
@@ -716,7 +716,27 @@ int default_mtd_writev(struct mtd_info *mtd, const struct kvec *vecs, | |||
716 | *retlen = totlen; | 716 | *retlen = totlen; |
717 | return ret; | 717 | return ret; |
718 | } | 718 | } |
719 | EXPORT_SYMBOL_GPL(default_mtd_writev); | 719 | |
720 | /* | ||
721 | * mtd_writev - the vector-based MTD write method | ||
722 | * @mtd: mtd device description object pointer | ||
723 | * @vecs: the vectors to write | ||
724 | * @count: count of vectors in @vecs | ||
725 | * @to: the MTD device offset to write to | ||
726 | * @retlen: on exit contains the count of bytes written to the MTD device. | ||
727 | * | ||
728 | * This function returns zero in case of success and a negative error code in | ||
729 | * case of failure. | ||
730 | */ | ||
731 | int mtd_writev(struct mtd_info *mtd, const struct kvec *vecs, | ||
732 | unsigned long count, loff_t to, size_t *retlen) | ||
733 | { | ||
734 | *retlen = 0; | ||
735 | if (!mtd->writev) | ||
736 | return default_mtd_writev(mtd, vecs, count, to, retlen); | ||
737 | return mtd->writev(mtd, vecs, count, to, retlen); | ||
738 | } | ||
739 | EXPORT_SYMBOL_GPL(mtd_writev); | ||
720 | 740 | ||
721 | /** | 741 | /** |
722 | * mtd_kmalloc_up_to - allocate a contiguous buffer up to the specified size | 742 | * mtd_kmalloc_up_to - allocate a contiguous buffer up to the specified size |
diff --git a/fs/jffs2/writev.c b/fs/jffs2/writev.c index 8d704073f8b0..a1bda9dab3f8 100644 --- a/fs/jffs2/writev.c +++ b/fs/jffs2/writev.c | |||
@@ -26,11 +26,7 @@ int jffs2_flash_direct_writev(struct jffs2_sb_info *c, const struct kvec *vecs, | |||
26 | } | 26 | } |
27 | } | 27 | } |
28 | 28 | ||
29 | if (c->mtd->writev) | 29 | return mtd_writev(c->mtd, vecs, count, to, retlen); |
30 | return mtd_writev(c->mtd, vecs, count, to, retlen); | ||
31 | else { | ||
32 | return default_mtd_writev(c->mtd, vecs, count, to, retlen); | ||
33 | } | ||
34 | } | 30 | } |
35 | 31 | ||
36 | int jffs2_flash_direct_write(struct jffs2_sb_info *c, loff_t ofs, size_t len, | 32 | int jffs2_flash_direct_write(struct jffs2_sb_info *c, loff_t ofs, size_t len, |
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index a994129ede55..a58ecf4d1f80 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
@@ -394,16 +394,8 @@ static inline int mtd_lock_user_prot_reg(struct mtd_info *mtd, loff_t from, | |||
394 | return mtd->lock_user_prot_reg(mtd, from, len); | 394 | return mtd->lock_user_prot_reg(mtd, from, len); |
395 | } | 395 | } |
396 | 396 | ||
397 | /* | 397 | int mtd_writev(struct mtd_info *mtd, const struct kvec *vecs, |
398 | * kvec-based read/write method. NB: The 'count' parameter is the number of | 398 | unsigned long count, loff_t to, size_t *retlen); |
399 | * _vectors_, each of which contains an (ofs, len) tuple. | ||
400 | */ | ||
401 | static inline int mtd_writev(struct mtd_info *mtd, const struct kvec *vecs, | ||
402 | unsigned long count, loff_t to, size_t *retlen) | ||
403 | { | ||
404 | *retlen = 0; | ||
405 | return mtd->writev(mtd, vecs, count, to, retlen); | ||
406 | } | ||
407 | 399 | ||
408 | static inline void mtd_sync(struct mtd_info *mtd) | 400 | static inline void mtd_sync(struct mtd_info *mtd) |
409 | { | 401 | { |
@@ -510,10 +502,6 @@ struct mtd_notifier { | |||
510 | 502 | ||
511 | extern void register_mtd_user (struct mtd_notifier *new); | 503 | extern void register_mtd_user (struct mtd_notifier *new); |
512 | extern int unregister_mtd_user (struct mtd_notifier *old); | 504 | extern int unregister_mtd_user (struct mtd_notifier *old); |
513 | |||
514 | int default_mtd_writev(struct mtd_info *mtd, const struct kvec *vecs, | ||
515 | unsigned long count, loff_t to, size_t *retlen); | ||
516 | |||
517 | void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size); | 505 | void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size); |
518 | 506 | ||
519 | void mtd_erase_callback(struct erase_info *instr); | 507 | void mtd_erase_callback(struct erase_info *instr); |