3737/* Info for the block device */
3838struct block2mtd_dev {
3939 struct list_head list ;
40- struct bdev_handle * bdev_handle ;
40+ struct file * bdev_file ;
4141 struct mtd_info mtd ;
4242 struct mutex write_mutex ;
4343};
@@ -55,8 +55,7 @@ static struct page *page_read(struct address_space *mapping, pgoff_t index)
5555/* erase a specified part of the device */
5656static int _block2mtd_erase (struct block2mtd_dev * dev , loff_t to , size_t len )
5757{
58- struct address_space * mapping =
59- dev -> bdev_handle -> bdev -> bd_inode -> i_mapping ;
58+ struct address_space * mapping = dev -> bdev_file -> f_mapping ;
6059 struct page * page ;
6160 pgoff_t index = to >> PAGE_SHIFT ; // page index
6261 int pages = len >> PAGE_SHIFT ;
@@ -106,8 +105,7 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
106105 size_t * retlen , u_char * buf )
107106{
108107 struct block2mtd_dev * dev = mtd -> priv ;
109- struct address_space * mapping =
110- dev -> bdev_handle -> bdev -> bd_inode -> i_mapping ;
108+ struct address_space * mapping = dev -> bdev_file -> f_mapping ;
111109 struct page * page ;
112110 pgoff_t index = from >> PAGE_SHIFT ;
113111 int offset = from & (PAGE_SIZE - 1 );
@@ -142,8 +140,7 @@ static int _block2mtd_write(struct block2mtd_dev *dev, const u_char *buf,
142140 loff_t to , size_t len , size_t * retlen )
143141{
144142 struct page * page ;
145- struct address_space * mapping =
146- dev -> bdev_handle -> bdev -> bd_inode -> i_mapping ;
143+ struct address_space * mapping = dev -> bdev_file -> f_mapping ;
147144 pgoff_t index = to >> PAGE_SHIFT ; // page index
148145 int offset = to & ~PAGE_MASK ; // page offset
149146 int cpylen ;
@@ -198,7 +195,7 @@ static int block2mtd_write(struct mtd_info *mtd, loff_t to, size_t len,
198195static void block2mtd_sync (struct mtd_info * mtd )
199196{
200197 struct block2mtd_dev * dev = mtd -> priv ;
201- sync_blockdev (dev -> bdev_handle -> bdev );
198+ sync_blockdev (file_bdev ( dev -> bdev_file ) );
202199 return ;
203200}
204201
@@ -210,10 +207,9 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
210207
211208 kfree (dev -> mtd .name );
212209
213- if (dev -> bdev_handle ) {
214- invalidate_mapping_pages (
215- dev -> bdev_handle -> bdev -> bd_inode -> i_mapping , 0 , -1 );
216- bdev_release (dev -> bdev_handle );
210+ if (dev -> bdev_file ) {
211+ invalidate_mapping_pages (dev -> bdev_file -> f_mapping , 0 , -1 );
212+ fput (dev -> bdev_file );
217213 }
218214
219215 kfree (dev );
@@ -223,18 +219,18 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
223219 * This function is marked __ref because it calls the __init marked
224220 * early_lookup_bdev when called from the early boot code.
225221 */
226- static struct bdev_handle __ref * mdtblock_early_get_bdev (const char * devname ,
222+ static struct file __ref * mdtblock_early_get_bdev (const char * devname ,
227223 blk_mode_t mode , int timeout , struct block2mtd_dev * dev )
228224{
229- struct bdev_handle * bdev_handle = ERR_PTR (- ENODEV );
225+ struct file * bdev_file = ERR_PTR (- ENODEV );
230226#ifndef MODULE
231227 int i ;
232228
233229 /*
234230 * We can't use early_lookup_bdev from a running system.
235231 */
236232 if (system_state >= SYSTEM_RUNNING )
237- return bdev_handle ;
233+ return bdev_file ;
238234
239235 /*
240236 * We might not have the root device mounted at this point.
@@ -253,20 +249,20 @@ static struct bdev_handle __ref *mdtblock_early_get_bdev(const char *devname,
253249 wait_for_device_probe ();
254250
255251 if (!early_lookup_bdev (devname , & devt )) {
256- bdev_handle = bdev_open_by_dev (devt , mode , dev , NULL );
257- if (!IS_ERR (bdev_handle ))
252+ bdev_file = bdev_file_open_by_dev (devt , mode , dev , NULL );
253+ if (!IS_ERR (bdev_file ))
258254 break ;
259255 }
260256 }
261257#endif
262- return bdev_handle ;
258+ return bdev_file ;
263259}
264260
265261static struct block2mtd_dev * add_device (char * devname , int erase_size ,
266262 char * label , int timeout )
267263{
268264 const blk_mode_t mode = BLK_OPEN_READ | BLK_OPEN_WRITE ;
269- struct bdev_handle * bdev_handle ;
265+ struct file * bdev_file ;
270266 struct block_device * bdev ;
271267 struct block2mtd_dev * dev ;
272268 char * name ;
@@ -279,16 +275,16 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
279275 return NULL ;
280276
281277 /* Get a handle on the device */
282- bdev_handle = bdev_open_by_path (devname , mode , dev , NULL );
283- if (IS_ERR (bdev_handle ))
284- bdev_handle = mdtblock_early_get_bdev (devname , mode , timeout ,
278+ bdev_file = bdev_file_open_by_path (devname , mode , dev , NULL );
279+ if (IS_ERR (bdev_file ))
280+ bdev_file = mdtblock_early_get_bdev (devname , mode , timeout ,
285281 dev );
286- if (IS_ERR (bdev_handle )) {
282+ if (IS_ERR (bdev_file )) {
287283 pr_err ("error: cannot open device %s\n" , devname );
288284 goto err_free_block2mtd ;
289285 }
290- dev -> bdev_handle = bdev_handle ;
291- bdev = bdev_handle -> bdev ;
286+ dev -> bdev_file = bdev_file ;
287+ bdev = file_bdev ( bdev_file ) ;
292288
293289 if (MAJOR (bdev -> bd_dev ) == MTD_BLOCK_MAJOR ) {
294290 pr_err ("attempting to use an MTD device as a block device\n" );
0 commit comments