Lines Matching refs:bdev_file
58 struct block_device *file_bdev(struct file *bdev_file) in file_bdev() argument
60 return I_BDEV(bdev_file->f_mapping->host); in file_bdev()
903 static inline bool bdev_unclaimed(const struct file *bdev_file) in bdev_unclaimed() argument
905 return bdev_file->private_data == BDEV_I(bdev_file->f_mapping->host); in bdev_unclaimed()
908 static void bdev_yield_write_access(struct file *bdev_file) in bdev_yield_write_access() argument
915 if (bdev_unclaimed(bdev_file)) in bdev_yield_write_access()
918 bdev = file_bdev(bdev_file); in bdev_yield_write_access()
920 if (bdev_file->f_mode & FMODE_WRITE_RESTRICTED) in bdev_yield_write_access()
922 else if (bdev_file->f_mode & FMODE_WRITE) in bdev_yield_write_access()
944 const struct blk_holder_ops *hops, struct file *bdev_file) in bdev_open() argument
1000 bdev_file->f_flags |= O_LARGEFILE; in bdev_open()
1001 bdev_file->f_mode |= FMODE_CAN_ODIRECT; in bdev_open()
1003 bdev_file->f_mode |= FMODE_NOWAIT; in bdev_open()
1005 bdev_file->f_mode |= FMODE_WRITE_RESTRICTED; in bdev_open()
1006 bdev_file->f_mapping = bdev->bd_mapping; in bdev_open()
1007 bdev_file->f_wb_err = filemap_sample_wb_err(bdev_file->f_mapping); in bdev_open()
1008 bdev_file->private_data = holder; in bdev_open()
1054 struct file *bdev_file; in bdev_file_open_by_dev() local
1068 bdev_file = alloc_file_pseudo_noaccount(BD_INODE(bdev), in bdev_file_open_by_dev()
1070 if (IS_ERR(bdev_file)) { in bdev_file_open_by_dev()
1072 return bdev_file; in bdev_file_open_by_dev()
1076 ret = bdev_open(bdev, mode, holder, hops, bdev_file); in bdev_file_open_by_dev()
1079 bdev_file->private_data = ERR_PTR(ret); in bdev_file_open_by_dev()
1080 fput(bdev_file); in bdev_file_open_by_dev()
1083 return bdev_file; in bdev_file_open_by_dev()
1111 static inline void bd_yield_claim(struct file *bdev_file) in bd_yield_claim() argument
1113 struct block_device *bdev = file_bdev(bdev_file); in bd_yield_claim()
1114 void *holder = bdev_file->private_data; in bd_yield_claim()
1121 if (!bdev_unclaimed(bdev_file)) in bd_yield_claim()
1125 void bdev_release(struct file *bdev_file) in bdev_release() argument
1127 struct block_device *bdev = file_bdev(bdev_file); in bdev_release()
1128 void *holder = bdev_file->private_data; in bdev_release()
1146 bdev_yield_write_access(bdev_file); in bdev_release()
1149 bd_yield_claim(bdev_file); in bdev_release()
1177 void bdev_fput(struct file *bdev_file) in bdev_fput() argument
1179 if (WARN_ON_ONCE(bdev_file->f_op != &def_blk_fops)) in bdev_fput()
1182 if (bdev_file->private_data) { in bdev_fput()
1183 struct block_device *bdev = file_bdev(bdev_file); in bdev_fput()
1187 bdev_yield_write_access(bdev_file); in bdev_fput()
1188 bd_yield_claim(bdev_file); in bdev_fput()
1194 bdev_file->private_data = BDEV_I(bdev_file->f_mapping->host); in bdev_fput()
1198 fput(bdev_file); in bdev_fput()