brd.c (03ab8e6297acd1bc0eedaa050e2a1635c576fd11) brd.c (8b9ab62662048a3274361c7e5f64037c2c133e2c)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Ram backed block device driver.
4 *
5 * Copyright (C) 2007 Nick Piggin
6 * Copyright (C) 2007 Novell Inc.
7 *
8 * Parts derived from drivers/block/rd.c, and drivers/block/loop.c, copyright

--- 405 unchanged lines hidden (view full) ---

414 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, disk->queue);
415 err = add_disk(disk);
416 if (err)
417 goto out_cleanup_disk;
418
419 return 0;
420
421out_cleanup_disk:
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Ram backed block device driver.
4 *
5 * Copyright (C) 2007 Nick Piggin
6 * Copyright (C) 2007 Novell Inc.
7 *
8 * Parts derived from drivers/block/rd.c, and drivers/block/loop.c, copyright

--- 405 unchanged lines hidden (view full) ---

414 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, disk->queue);
415 err = add_disk(disk);
416 if (err)
417 goto out_cleanup_disk;
418
419 return 0;
420
421out_cleanup_disk:
422 blk_cleanup_disk(disk);
422 put_disk(disk);
423out_free_dev:
424 list_del(&brd->brd_list);
425 kfree(brd);
426 return err;
427}
428
429static void brd_probe(dev_t dev)
430{
431 brd_alloc(MINOR(dev) / max_part);
432}
433
434static void brd_cleanup(void)
435{
436 struct brd_device *brd, *next;
437
438 debugfs_remove_recursive(brd_debugfs_dir);
439
440 list_for_each_entry_safe(brd, next, &brd_devices, brd_list) {
441 del_gendisk(brd->brd_disk);
423out_free_dev:
424 list_del(&brd->brd_list);
425 kfree(brd);
426 return err;
427}
428
429static void brd_probe(dev_t dev)
430{
431 brd_alloc(MINOR(dev) / max_part);
432}
433
434static void brd_cleanup(void)
435{
436 struct brd_device *brd, *next;
437
438 debugfs_remove_recursive(brd_debugfs_dir);
439
440 list_for_each_entry_safe(brd, next, &brd_devices, brd_list) {
441 del_gendisk(brd->brd_disk);
442 blk_cleanup_disk(brd->brd_disk);
442 put_disk(brd->brd_disk);
443 brd_free_pages(brd);
444 list_del(&brd->brd_list);
445 kfree(brd);
446 }
447}
448
449static inline void brd_check_and_reset_par(void)
450{

--- 73 unchanged lines hidden ---
443 brd_free_pages(brd);
444 list_del(&brd->brd_list);
445 kfree(brd);
446 }
447}
448
449static inline void brd_check_and_reset_par(void)
450{

--- 73 unchanged lines hidden ---