From: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
To: "Gareth Bult (Encryptec)" <Gareth@Encryptec.net>
Cc: Linux MTD <linux-mtd@lists.infradead.org>
Subject: [PATCH 14/22] Change add_device
Date: Tue, 21 Dec 2004 15:01:02 +0100 [thread overview]
Message-ID: <20041221140102.GT22636@wohnheim.fh-wedel.de> (raw)
In-Reply-To: <20041221135705.GS22636@wohnheim.fh-wedel.de>
o Remove the last remaining #ifdef.
o s/mtd_info/mtd/ makes nicer reading.
o General cleanup to add_device
Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
---
blockmtd.c | 86 ++++++++++++++++++++++++++-----------------------------------
1 files changed, 37 insertions(+), 49 deletions(-)
--- linux-2.6.9cow/drivers/mtd/devices/blockmtd.c~blockmtd_ifdef 2004-12-20 22:21:50.000000000 +0100
+++ linux-2.6.9cow/drivers/mtd/devices/blockmtd.c 2004-12-20 22:38:34.000000000 +0100
@@ -45,7 +45,7 @@
struct blkmtd_dev {
struct list_head list;
struct block_device *blkdev;
- struct mtd_info mtd_info;
+ struct mtd_info mtd;
struct semaphore wrbuf_mutex;
};
@@ -349,8 +349,8 @@
if (!dev)
return;
- kfree(dev->mtd_info.eraseregions);
- kfree(dev->mtd_info.name);
+ kfree(dev->mtd.eraseregions);
+ kfree(dev->mtd.name);
if (dev->blkdev) {
invalidate_inode_pages(dev->blkdev->bd_inode->i_mapping);
@@ -361,78 +361,66 @@
}
-extern dev_t __init name_to_dev_t(const char *line);
-
static struct blkmtd_dev *add_device(char *devname, int erase_size)
{
struct block_device *bdev;
- int mode;
struct blkmtd_dev *dev;
if (!devname)
return NULL;
- /* Get a handle on the device */
+ dev = kmalloc(sizeof(struct blkmtd_dev), GFP_KERNEL);
+ if (!dev)
+ return NULL;
+ memset(dev, 0, sizeof(*dev));
-#ifdef MODULE
- mode = O_RDWR;
- bdev = open_bdev_excl(devname, mode, NULL);
-#else
- mode = FMODE_WRITE;
- bdev = open_by_devnum(name_to_dev_t(devname), mode);
-#endif
+ /* Get a handle on the device */
+ bdev = open_bdev_excl(devname, O_RDWR, NULL);
if (IS_ERR(bdev)) {
ERROR("error: cannot open device %s", devname);
- return NULL;
+ goto devinit_err;
}
+ dev->blkdev = bdev;
if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) {
ERROR("attempting to use an MTD device as a block device");
- blkdev_put(bdev);
- return NULL;
- }
-
- dev = kmalloc(sizeof(struct blkmtd_dev), GFP_KERNEL);
- if (dev == NULL) {
- blkdev_put(bdev);
- return NULL;
+ goto devinit_err;
}
- memset(dev, 0, sizeof(struct blkmtd_dev));
- dev->blkdev = bdev;
- atomic_set(&(dev->blkdev->bd_inode->i_mapping->truncate_count), 0);
+ atomic_set(&bdev->bd_inode->i_mapping->truncate_count, 0);
init_MUTEX(&dev->wrbuf_mutex);
- dev->mtd_info.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
-
/* Setup the MTD structure */
/* make the name contain the block device in */
- dev->mtd_info.name = kmalloc(sizeof("blkmtd: ") + strlen(devname), GFP_KERNEL);
- if (dev->mtd_info.name == NULL)
+ dev->mtd.name = kmalloc(sizeof("blockmtd: ") + strlen(devname),
+ GFP_KERNEL);
+ if (!dev->mtd.name)
goto devinit_err;
- sprintf(dev->mtd_info.name, "blkmtd: %s", devname);
+ sprintf(dev->mtd.name, "blockmtd: %s", devname);
- dev->mtd_info.erasesize = erase_size;
- dev->mtd_info.type = MTD_RAM;
- dev->mtd_info.flags = MTD_CAP_RAM;
- dev->mtd_info.erase = blkmtd_erase;
- dev->mtd_info.write = blkmtd_write;
- dev->mtd_info.writev = default_mtd_writev;
- dev->mtd_info.sync = blockmtd_sync;
- dev->mtd_info.read = blkmtd_read;
- dev->mtd_info.readv = default_mtd_readv;
- dev->mtd_info.priv = dev;
- dev->mtd_info.owner = THIS_MODULE;
+ dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
+ dev->mtd.erasesize = erase_size;
+ dev->mtd.type = MTD_RAM;
+ dev->mtd.flags = MTD_CAP_RAM;
+ dev->mtd.erase = blkmtd_erase;
+ dev->mtd.write = blkmtd_write;
+ dev->mtd.writev = default_mtd_writev;
+ dev->mtd.sync = blockmtd_sync;
+ dev->mtd.read = blkmtd_read;
+ dev->mtd.readv = default_mtd_readv;
+ dev->mtd.priv = dev;
+ dev->mtd.owner = THIS_MODULE;
list_add(&dev->list, &blkmtd_device_list);
- if (add_mtd_device(&dev->mtd_info)) {
+ if (add_mtd_device(&dev->mtd)) {
/* Device didnt get added, so free the entry */
list_del(&dev->list);
goto devinit_err;
- } else {
- INFO("mtd%d: [%s] erase_size = %dKiB [%ld]", dev->mtd_info.index, dev->mtd_info.name + strlen("blkmtd: "), dev->mtd_info.erasesize >> 10, PAGE_SIZE);
}
+ INFO("mtd%d: [%s] erase_size = %dKiB [%ld]", dev->mtd.index,
+ dev->mtd.name + strlen("blkmtd: "),
+ dev->mtd.erasesize >> 10, PAGE_SIZE);
return dev;
devinit_err:
@@ -564,10 +552,10 @@
list_for_each_safe(temp1, temp2, &blkmtd_device_list) {
struct blkmtd_dev *dev = list_entry(temp1, struct blkmtd_dev,
list);
- blockmtd_sync(&dev->mtd_info);
- del_mtd_device(&dev->mtd_info);
- INFO("mtd%d: [%s] removed", dev->mtd_info.index,
- dev->mtd_info.name + strlen("blkmtd: "));
+ blockmtd_sync(&dev->mtd);
+ del_mtd_device(&dev->mtd);
+ INFO("mtd%d: [%s] removed", dev->mtd.index,
+ dev->mtd.name + strlen("blkmtd: "));
list_del(&dev->list);
blockmtd_free_device(dev);
}
next prev parent reply other threads:[~2004-12-21 14:01 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-15 23:19 JFFS2 mount time Gareth Bult (Encryptec)
2004-12-16 0:15 ` Josh Boyer
2004-12-16 1:02 ` Gareth Bult (Encryptec)
2004-12-16 12:53 ` Josh Boyer
2004-12-16 21:22 ` Gareth Bult (Encryptec)
2004-12-16 21:28 ` Josh Boyer
2004-12-16 21:47 ` Gareth Bult (Encryptec)
2004-12-17 12:54 ` Josh Boyer
2004-12-17 15:33 ` Gareth Bult (Encryptec)
2004-12-17 16:02 ` Josh Boyer
2004-12-17 16:46 ` Gareth Bult (Encryptec)
2004-12-17 17:08 ` Artem B. Bityuckiy
2004-12-17 17:10 ` Josh Boyer
2004-12-17 17:26 ` Gareth Bult (Encryptec)
2004-12-17 17:35 ` Josh Boyer
2004-12-17 18:09 ` Gareth Bult (Encryptec)
2004-12-17 19:14 ` jasmine
2004-12-17 20:55 ` Gareth Bult (Encryptec)
2004-12-18 16:02 ` Jörn Engel
2004-12-20 16:34 ` Josh Boyer
2004-12-20 17:12 ` Gareth Bult (Encryptec)
2004-12-21 13:09 ` Jörn Engel
2004-12-21 13:24 ` Gareth Bult (Encryptec)
2004-12-21 13:34 ` Jörn Engel
2004-12-18 16:19 ` Jörn Engel
2004-12-18 17:32 ` Gareth Bult (Encryptec)
2004-12-18 17:52 ` Jörn Engel
2004-12-18 18:11 ` Jörn Engel
2004-12-18 20:48 ` Gareth Bult (Encryptec)
2004-12-19 2:44 ` Jörn Engel
2004-12-21 13:30 ` Jörn Engel
2004-12-21 13:39 ` [PATCH 1/22] Add drivers/mtd/devices/blockmtd.c Jörn Engel
2004-12-21 13:41 ` [PATCH 2/22] Add copyrights Jörn Engel
2004-12-21 13:42 ` [PATCH 3/22] Remove read-only option Jörn Engel
2004-12-21 13:44 ` [PATCH 4/22] Change init/exit functions Jörn Engel
2004-12-21 13:45 ` [PATCH 5/22] Remove gcc warnings Jörn Engel
2004-12-21 13:47 ` [PATCH 6/22] Remove debug macros Jörn Engel
2004-12-21 13:48 ` [PATCH 7/22] Lindent Jörn Engel
2004-12-21 13:49 ` [PATCH 8/22] Remove sync interface Jörn Engel
2004-12-21 13:51 ` [PATCH 9/22] Change parameter interface to phram-style Jörn Engel
2004-12-21 13:53 ` [PATCH 10/22] Cleanup macro usage Jörn Engel
2004-12-21 13:54 ` [PATCH 11/22] kfree simplifications Jörn Engel
2004-12-21 13:55 ` [PATCH 12/22] change blockmtd_sync Jörn Engel
2004-12-21 13:57 ` [PATCH 13/22] remove erase regions Jörn Engel
2004-12-21 14:01 ` Jörn Engel [this message]
2004-12-21 14:02 ` [PATCH 15/22] Rename unreadable mutex Jörn Engel
2004-12-21 14:03 ` [PATCH 16/22] list changes Jörn Engel
2004-12-21 14:04 ` [PATCH 17/22] Rename central struct Jörn Engel
2004-12-21 14:06 ` [PATCH 18/22] Function renaming Jörn Engel
2004-12-21 14:09 ` [PATCH 19/22] Fold various erase functions Jörn Engel
2004-12-21 14:10 ` [PATCH 20/22] Fold various write functions Jörn Engel
2004-12-21 14:11 ` [PATCH 21/22] Default erase size Jörn Engel
2004-12-21 14:13 ` [PATCH 22/22] Readahead Jörn Engel
2004-12-21 18:42 ` [PATCH 13/22] remove erase regions Christopher Hoover
2004-12-21 18:49 ` Jörn Engel
2004-12-21 21:09 ` Christopher Hoover
2004-12-22 2:47 ` Eric W. Biederman
2004-12-22 8:59 ` Jörn Engel
2004-12-22 10:05 ` Eric W. Biederman
2004-12-22 10:41 ` Jörn Engel
2004-12-21 13:42 ` [PATCH 1/22] Add drivers/mtd/devices/blockmtd.c Gareth Bult (Encryptec)
2004-12-21 14:15 ` Jörn Engel
2004-12-21 13:40 ` JFFS2 mount time Gareth Bult (Encryptec)
2004-12-21 15:00 ` David Woodhouse
[not found] ` <1103644945.10792.175.camel@squizzey.bult.co.uk>
2004-12-21 16:04 ` Jörn Engel
2004-12-16 13:43 ` Ferenc Havasi
2004-12-20 16:01 ` Gareth Bult (Encryptec)
2004-12-20 16:09 ` Ferenc Havasi
2004-12-20 16:39 ` Gareth Bult (Encryptec)
2004-12-20 17:48 ` Gareth Bult (Encryptec)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041221140102.GT22636@wohnheim.fh-wedel.de \
--to=joern@wohnheim.fh-wedel.de \
--cc=Gareth@Encryptec.net \
--cc=linux-mtd@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox