Commit 8077c0d983ab276ec5f2700df56a64d671781905

Authored by Mikulas Patocka
Committed by Jens Axboe
1 parent a207f59376

bdi: test bdi_init failure

There were two places where return value from bdi_init was not tested.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

Showing 3 changed files with 6 additions and 4 deletions Side-by-side Diff

... ... @@ -574,7 +574,8 @@
574 574 void __init chrdev_init(void)
575 575 {
576 576 cdev_map = kobj_map_init(base_probe, &chrdevs_lock);
577   - bdi_init(&directly_mappable_cdev_bdi);
  577 + if (bdi_init(&directly_mappable_cdev_bdi))
  578 + panic("Failed to init directly mappable cdev bdi");
578 579 }
579 580  
580 581  
include/linux/backing-dev.h
... ... @@ -109,7 +109,7 @@
109 109 #endif
110 110 };
111 111  
112   -int bdi_init(struct backing_dev_info *bdi);
  112 +int __must_check bdi_init(struct backing_dev_info *bdi);
113 113 void bdi_destroy(struct backing_dev_info *bdi);
114 114  
115 115 __printf(3, 4)
... ... @@ -117,7 +117,7 @@
117 117 const char *fmt, ...);
118 118 int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
119 119 void bdi_unregister(struct backing_dev_info *bdi);
120   -int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int);
  120 +int __must_check bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int);
121 121 void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages,
122 122 enum wb_reason reason);
123 123 void bdi_start_background_writeback(struct backing_dev_info *bdi);
... ... @@ -934,7 +934,8 @@
934 934 #ifdef CONFIG_SWAP
935 935 int i;
936 936  
937   - bdi_init(swapper_spaces[0].backing_dev_info);
  937 + if (bdi_init(swapper_spaces[0].backing_dev_info))
  938 + panic("Failed to init swap bdi");
938 939 for (i = 0; i < MAX_SWAPFILES; i++) {
939 940 spin_lock_init(&swapper_spaces[i].tree_lock);
940 941 INIT_LIST_HEAD(&swapper_spaces[i].i_mmap_nonlinear);