diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-01-16 22:45:53 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-01-24 17:36:11 -0500 |
commit | 38b8d01c4cf823d9804451eff5ec811c17b03408 (patch) | |
tree | 4ae8f519d79df5a7f8744ef217953f24c9d5ba09 /linux | |
parent | 7717a439cffdd32808131ee9837e6c8a8a1972fc (diff) |
Update bcachefs sources to 481b5f343248 bcachefs: Better error messages for missing inodes in fsck
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'linux')
-rw-r--r-- | linux/blkdev.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/linux/blkdev.c b/linux/blkdev.c index 61f23362..b7f58737 100644 --- a/linux/blkdev.c +++ b/linux/blkdev.c @@ -162,17 +162,17 @@ sector_t get_capacity(struct gendisk *disk) return bytes >> 9; } -void blkdev_put(struct block_device *bdev, void *holder) +void bdev_release(struct bdev_handle *handle) { - fdatasync(bdev->bd_fd); - close(bdev->bd_fd); - free(bdev); + fdatasync(handle->bdev->bd_fd); + close(handle->bdev->bd_fd); + free(handle->bdev); + free(handle); } -struct block_device *blkdev_get_by_path(const char *path, blk_mode_t mode, - void *holder, const struct blk_holder_ops *hop) +struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode, + void *holder, const struct blk_holder_ops *hop) { - struct block_device *bdev; int fd, flags = 0; if ((mode & (BLK_OPEN_READ|BLK_OPEN_WRITE)) == (BLK_OPEN_READ|BLK_OPEN_WRITE)) @@ -192,7 +192,7 @@ struct block_device *blkdev_get_by_path(const char *path, blk_mode_t mode, if (fd < 0) return ERR_PTR(-errno); - bdev = malloc(sizeof(*bdev)); + struct block_device *bdev = malloc(sizeof(*bdev)); memset(bdev, 0, sizeof(*bdev)); strncpy(bdev->name, path, sizeof(bdev->name)); @@ -205,12 +205,12 @@ struct block_device *blkdev_get_by_path(const char *path, blk_mode_t mode, bdev->bd_disk->bdi = &bdev->bd_disk->__bdi; bdev->queue.backing_dev_info = bdev->bd_disk->bdi; - return bdev; -} + struct bdev_handle *handle = calloc(sizeof(*handle), 1); + handle->bdev = bdev; + handle->holder = holder; + handle->mode = mode; -void bdput(struct block_device *bdev) -{ - BUG(); + return handle; } int lookup_bdev(const char *path, dev_t *dev) |