diff options
-rw-r--r-- | fs/block_dev.c | 14 | ||||
-rw-r--r-- | fs/ext3/super.c | 11 | ||||
-rw-r--r-- | fs/ext4/super.c | 11 | ||||
-rw-r--r-- | fs/nfs/blocklayout/blocklayout.h | 2 | ||||
-rw-r--r-- | fs/nfs/blocklayout/blocklayoutdev.c | 4 | ||||
-rw-r--r-- | fs/nfs/blocklayout/blocklayoutdm.c | 8 | ||||
-rw-r--r-- | fs/reiserfs/journal.c | 16 | ||||
-rw-r--r-- | include/linux/fs.h | 2 |
8 files changed, 22 insertions, 46 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index ad2a14174ae0..3823d3ffb760 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -1045,7 +1045,7 @@ void bd_set_size(struct block_device *bdev, loff_t size) | |||
1045 | } | 1045 | } |
1046 | EXPORT_SYMBOL(bd_set_size); | 1046 | EXPORT_SYMBOL(bd_set_size); |
1047 | 1047 | ||
1048 | static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part); | 1048 | static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part); |
1049 | 1049 | ||
1050 | /* | 1050 | /* |
1051 | * bd_mutex locking: | 1051 | * bd_mutex locking: |
@@ -1400,9 +1400,8 @@ static int blkdev_open(struct inode * inode, struct file * filp) | |||
1400 | return blkdev_get(bdev, filp->f_mode, filp); | 1400 | return blkdev_get(bdev, filp->f_mode, filp); |
1401 | } | 1401 | } |
1402 | 1402 | ||
1403 | static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part) | 1403 | static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part) |
1404 | { | 1404 | { |
1405 | int ret = 0; | ||
1406 | struct gendisk *disk = bdev->bd_disk; | 1405 | struct gendisk *disk = bdev->bd_disk; |
1407 | struct block_device *victim = NULL; | 1406 | struct block_device *victim = NULL; |
1408 | 1407 | ||
@@ -1441,10 +1440,9 @@ static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part) | |||
1441 | bdput(bdev); | 1440 | bdput(bdev); |
1442 | if (victim) | 1441 | if (victim) |
1443 | __blkdev_put(victim, mode, 1); | 1442 | __blkdev_put(victim, mode, 1); |
1444 | return ret; | ||
1445 | } | 1443 | } |
1446 | 1444 | ||
1447 | int blkdev_put(struct block_device *bdev, fmode_t mode) | 1445 | void blkdev_put(struct block_device *bdev, fmode_t mode) |
1448 | { | 1446 | { |
1449 | mutex_lock(&bdev->bd_mutex); | 1447 | mutex_lock(&bdev->bd_mutex); |
1450 | 1448 | ||
@@ -1488,15 +1486,15 @@ int blkdev_put(struct block_device *bdev, fmode_t mode) | |||
1488 | 1486 | ||
1489 | mutex_unlock(&bdev->bd_mutex); | 1487 | mutex_unlock(&bdev->bd_mutex); |
1490 | 1488 | ||
1491 | return __blkdev_put(bdev, mode, 0); | 1489 | __blkdev_put(bdev, mode, 0); |
1492 | } | 1490 | } |
1493 | EXPORT_SYMBOL(blkdev_put); | 1491 | EXPORT_SYMBOL(blkdev_put); |
1494 | 1492 | ||
1495 | static int blkdev_close(struct inode * inode, struct file * filp) | 1493 | static int blkdev_close(struct inode * inode, struct file * filp) |
1496 | { | 1494 | { |
1497 | struct block_device *bdev = I_BDEV(filp->f_mapping->host); | 1495 | struct block_device *bdev = I_BDEV(filp->f_mapping->host); |
1498 | 1496 | blkdev_put(bdev, filp->f_mode); | |
1499 | return blkdev_put(bdev, filp->f_mode); | 1497 | return 0; |
1500 | } | 1498 | } |
1501 | 1499 | ||
1502 | static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg) | 1500 | static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg) |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 3dc48cc8b6eb..6356665a74bb 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -362,22 +362,19 @@ fail: | |||
362 | /* | 362 | /* |
363 | * Release the journal device | 363 | * Release the journal device |
364 | */ | 364 | */ |
365 | static int ext3_blkdev_put(struct block_device *bdev) | 365 | static void ext3_blkdev_put(struct block_device *bdev) |
366 | { | 366 | { |
367 | return blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); | 367 | blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); |
368 | } | 368 | } |
369 | 369 | ||
370 | static int ext3_blkdev_remove(struct ext3_sb_info *sbi) | 370 | static void ext3_blkdev_remove(struct ext3_sb_info *sbi) |
371 | { | 371 | { |
372 | struct block_device *bdev; | 372 | struct block_device *bdev; |
373 | int ret = -ENODEV; | ||
374 | |||
375 | bdev = sbi->journal_bdev; | 373 | bdev = sbi->journal_bdev; |
376 | if (bdev) { | 374 | if (bdev) { |
377 | ret = ext3_blkdev_put(bdev); | 375 | ext3_blkdev_put(bdev); |
378 | sbi->journal_bdev = NULL; | 376 | sbi->journal_bdev = NULL; |
379 | } | 377 | } |
380 | return ret; | ||
381 | } | 378 | } |
382 | 379 | ||
383 | static inline struct inode *orphan_list_entry(struct list_head *l) | 380 | static inline struct inode *orphan_list_entry(struct list_head *l) |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 24a146bde742..94cc84db7c9a 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -703,22 +703,19 @@ fail: | |||
703 | /* | 703 | /* |
704 | * Release the journal device | 704 | * Release the journal device |
705 | */ | 705 | */ |
706 | static int ext4_blkdev_put(struct block_device *bdev) | 706 | static void ext4_blkdev_put(struct block_device *bdev) |
707 | { | 707 | { |
708 | return blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); | 708 | blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); |
709 | } | 709 | } |
710 | 710 | ||
711 | static int ext4_blkdev_remove(struct ext4_sb_info *sbi) | 711 | static void ext4_blkdev_remove(struct ext4_sb_info *sbi) |
712 | { | 712 | { |
713 | struct block_device *bdev; | 713 | struct block_device *bdev; |
714 | int ret = -ENODEV; | ||
715 | |||
716 | bdev = sbi->journal_bdev; | 714 | bdev = sbi->journal_bdev; |
717 | if (bdev) { | 715 | if (bdev) { |
718 | ret = ext4_blkdev_put(bdev); | 716 | ext4_blkdev_put(bdev); |
719 | sbi->journal_bdev = NULL; | 717 | sbi->journal_bdev = NULL; |
720 | } | 718 | } |
721 | return ret; | ||
722 | } | 719 | } |
723 | 720 | ||
724 | static inline struct inode *orphan_list_entry(struct list_head *l) | 721 | static inline struct inode *orphan_list_entry(struct list_head *l) |
diff --git a/fs/nfs/blocklayout/blocklayout.h b/fs/nfs/blocklayout/blocklayout.h index f4891bde8851..8485978993e8 100644 --- a/fs/nfs/blocklayout/blocklayout.h +++ b/fs/nfs/blocklayout/blocklayout.h | |||
@@ -173,7 +173,7 @@ struct bl_msg_hdr { | |||
173 | /* blocklayoutdev.c */ | 173 | /* blocklayoutdev.c */ |
174 | ssize_t bl_pipe_downcall(struct file *, const char __user *, size_t); | 174 | ssize_t bl_pipe_downcall(struct file *, const char __user *, size_t); |
175 | void bl_pipe_destroy_msg(struct rpc_pipe_msg *); | 175 | void bl_pipe_destroy_msg(struct rpc_pipe_msg *); |
176 | int nfs4_blkdev_put(struct block_device *bdev); | 176 | void nfs4_blkdev_put(struct block_device *bdev); |
177 | struct pnfs_block_dev *nfs4_blk_decode_device(struct nfs_server *server, | 177 | struct pnfs_block_dev *nfs4_blk_decode_device(struct nfs_server *server, |
178 | struct pnfs_device *dev); | 178 | struct pnfs_device *dev); |
179 | int nfs4_blk_process_layoutget(struct pnfs_layout_hdr *lo, | 179 | int nfs4_blk_process_layoutget(struct pnfs_layout_hdr *lo, |
diff --git a/fs/nfs/blocklayout/blocklayoutdev.c b/fs/nfs/blocklayout/blocklayoutdev.c index a86c5bdad9e3..04303b5c9361 100644 --- a/fs/nfs/blocklayout/blocklayoutdev.c +++ b/fs/nfs/blocklayout/blocklayoutdev.c | |||
@@ -56,11 +56,11 @@ static int decode_sector_number(__be32 **rp, sector_t *sp) | |||
56 | /* | 56 | /* |
57 | * Release the block device | 57 | * Release the block device |
58 | */ | 58 | */ |
59 | int nfs4_blkdev_put(struct block_device *bdev) | 59 | void nfs4_blkdev_put(struct block_device *bdev) |
60 | { | 60 | { |
61 | dprintk("%s for device %d:%d\n", __func__, MAJOR(bdev->bd_dev), | 61 | dprintk("%s for device %d:%d\n", __func__, MAJOR(bdev->bd_dev), |
62 | MINOR(bdev->bd_dev)); | 62 | MINOR(bdev->bd_dev)); |
63 | return blkdev_put(bdev, FMODE_READ); | 63 | blkdev_put(bdev, FMODE_READ); |
64 | } | 64 | } |
65 | 65 | ||
66 | ssize_t bl_pipe_downcall(struct file *filp, const char __user *src, | 66 | ssize_t bl_pipe_downcall(struct file *filp, const char __user *src, |
diff --git a/fs/nfs/blocklayout/blocklayoutdm.c b/fs/nfs/blocklayout/blocklayoutdm.c index 6fc7b5cae92b..8999cfddd866 100644 --- a/fs/nfs/blocklayout/blocklayoutdm.c +++ b/fs/nfs/blocklayout/blocklayoutdm.c | |||
@@ -88,14 +88,8 @@ out: | |||
88 | */ | 88 | */ |
89 | static void nfs4_blk_metadev_release(struct pnfs_block_dev *bdev) | 89 | static void nfs4_blk_metadev_release(struct pnfs_block_dev *bdev) |
90 | { | 90 | { |
91 | int rv; | ||
92 | |||
93 | dprintk("%s Releasing\n", __func__); | 91 | dprintk("%s Releasing\n", __func__); |
94 | rv = nfs4_blkdev_put(bdev->bm_mdev); | 92 | nfs4_blkdev_put(bdev->bm_mdev); |
95 | if (rv) | ||
96 | printk(KERN_ERR "NFS: %s nfs4_blkdev_put returns %d\n", | ||
97 | __func__, rv); | ||
98 | |||
99 | dev_remove(bdev->net, bdev->bm_mdev->bd_dev); | 93 | dev_remove(bdev->net, bdev->bm_mdev->bd_dev); |
100 | } | 94 | } |
101 | 95 | ||
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index afcadcc03e8a..742fdd4c209a 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c | |||
@@ -97,7 +97,7 @@ static int flush_commit_list(struct super_block *s, | |||
97 | static int can_dirty(struct reiserfs_journal_cnode *cn); | 97 | static int can_dirty(struct reiserfs_journal_cnode *cn); |
98 | static int journal_join(struct reiserfs_transaction_handle *th, | 98 | static int journal_join(struct reiserfs_transaction_handle *th, |
99 | struct super_block *sb, unsigned long nblocks); | 99 | struct super_block *sb, unsigned long nblocks); |
100 | static int release_journal_dev(struct super_block *super, | 100 | static void release_journal_dev(struct super_block *super, |
101 | struct reiserfs_journal *journal); | 101 | struct reiserfs_journal *journal); |
102 | static int dirty_one_transaction(struct super_block *s, | 102 | static int dirty_one_transaction(struct super_block *s, |
103 | struct reiserfs_journal_list *jl); | 103 | struct reiserfs_journal_list *jl); |
@@ -2532,23 +2532,13 @@ static void journal_list_init(struct super_block *sb) | |||
2532 | SB_JOURNAL(sb)->j_current_jl = alloc_journal_list(sb); | 2532 | SB_JOURNAL(sb)->j_current_jl = alloc_journal_list(sb); |
2533 | } | 2533 | } |
2534 | 2534 | ||
2535 | static int release_journal_dev(struct super_block *super, | 2535 | static void release_journal_dev(struct super_block *super, |
2536 | struct reiserfs_journal *journal) | 2536 | struct reiserfs_journal *journal) |
2537 | { | 2537 | { |
2538 | int result; | ||
2539 | |||
2540 | result = 0; | ||
2541 | |||
2542 | if (journal->j_dev_bd != NULL) { | 2538 | if (journal->j_dev_bd != NULL) { |
2543 | result = blkdev_put(journal->j_dev_bd, journal->j_dev_mode); | 2539 | blkdev_put(journal->j_dev_bd, journal->j_dev_mode); |
2544 | journal->j_dev_bd = NULL; | 2540 | journal->j_dev_bd = NULL; |
2545 | } | 2541 | } |
2546 | |||
2547 | if (result != 0) { | ||
2548 | reiserfs_warning(super, "sh-457", | ||
2549 | "Cannot release journal device: %i", result); | ||
2550 | } | ||
2551 | return result; | ||
2552 | } | 2542 | } |
2553 | 2543 | ||
2554 | static int journal_init_dev(struct super_block *super, | 2544 | static int journal_init_dev(struct super_block *super, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index b5a24ba83b6f..43db02e9c9fa 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2091,7 +2091,7 @@ extern struct block_device *blkdev_get_by_path(const char *path, fmode_t mode, | |||
2091 | void *holder); | 2091 | void *holder); |
2092 | extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, | 2092 | extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, |
2093 | void *holder); | 2093 | void *holder); |
2094 | extern int blkdev_put(struct block_device *bdev, fmode_t mode); | 2094 | extern void blkdev_put(struct block_device *bdev, fmode_t mode); |
2095 | #ifdef CONFIG_SYSFS | 2095 | #ifdef CONFIG_SYSFS |
2096 | extern int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk); | 2096 | extern int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk); |
2097 | extern void bd_unlink_disk_holder(struct block_device *bdev, | 2097 | extern void bd_unlink_disk_holder(struct block_device *bdev, |