summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-01-16 22:45:53 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-01-24 17:36:11 -0500
commit38b8d01c4cf823d9804451eff5ec811c17b03408 (patch)
tree4ae8f519d79df5a7f8744ef217953f24c9d5ba09 /linux
parent7717a439cffdd32808131ee9837e6c8a8a1972fc (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.c26
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)