summaryrefslogtreecommitdiff
path: root/linux/blkdev.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-04-03 16:47:22 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-04-03 17:34:02 -0400
commit5639fb38cabaa326b8b664d874a46509d4a60bf2 (patch)
tree3f3aa73ebc9505bede820ce02d7e8a9bad7dfa08 /linux/blkdev.c
parent9f4ed5ce05888b62d1e4417323c553e5d06f4abf (diff)
Update bcachefs sources to 09d4c2acbf4c bcachefs: reconstruct_inode()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'linux/blkdev.c')
-rw-r--r--linux/blkdev.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/linux/blkdev.c b/linux/blkdev.c
index b7f58737..54122955 100644
--- a/linux/blkdev.c
+++ b/linux/blkdev.c
@@ -162,16 +162,18 @@ sector_t get_capacity(struct gendisk *disk)
return bytes >> 9;
}
-void bdev_release(struct bdev_handle *handle)
+void fput(struct file *file)
{
- fdatasync(handle->bdev->bd_fd);
- close(handle->bdev->bd_fd);
- free(handle->bdev);
- free(handle);
+ struct block_device *bdev = file_bdev(file);
+
+ fdatasync(bdev->bd_fd);
+ close(bdev->bd_fd);
+ free(bdev);
+ free(file);
}
-struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
- void *holder, const struct blk_holder_ops *hop)
+struct file *bdev_file_open_by_path(const char *path, blk_mode_t mode,
+ void *holder, const struct blk_holder_ops *hop)
{
int fd, flags = 0;
@@ -204,13 +206,12 @@ struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
bdev->bd_disk = &bdev->__bd_disk;
bdev->bd_disk->bdi = &bdev->bd_disk->__bdi;
bdev->queue.backing_dev_info = bdev->bd_disk->bdi;
+ bdev->bd_inode = &bdev->__bd_inode;
- struct bdev_handle *handle = calloc(sizeof(*handle), 1);
- handle->bdev = bdev;
- handle->holder = holder;
- handle->mode = mode;
+ struct file *file = calloc(sizeof(*file), 1);
+ file->f_inode = bdev->bd_inode;
- return handle;
+ return file;
}
int lookup_bdev(const char *path, dev_t *dev)