Lines Matching refs:bdev_file

52 struct block_device *file_bdev(struct file *bdev_file)
54 return I_BDEV(bdev_file->f_mapping->host);
818 static inline bool bdev_unclaimed(const struct file *bdev_file)
820 return bdev_file->private_data == BDEV_I(bdev_file->f_mapping->host);
823 static void bdev_yield_write_access(struct file *bdev_file)
830 if (bdev_unclaimed(bdev_file))
833 bdev = file_bdev(bdev_file);
835 if (bdev_file->f_mode & FMODE_WRITE_RESTRICTED)
837 else if (bdev_file->f_mode & FMODE_WRITE)
847 * @bdev_file: file for the block device
859 const struct blk_holder_ops *hops, struct file *bdev_file)
914 bdev_file->f_flags |= O_LARGEFILE;
915 bdev_file->f_mode |= FMODE_CAN_ODIRECT;
917 bdev_file->f_mode |= FMODE_NOWAIT;
919 bdev_file->f_mode |= FMODE_WRITE_RESTRICTED;
920 bdev_file->f_mapping = bdev->bd_inode->i_mapping;
921 bdev_file->f_wb_err = filemap_sample_wb_err(bdev_file->f_mapping);
922 bdev_file->private_data = holder;
968 struct file *bdev_file;
982 bdev_file = alloc_file_pseudo_noaccount(bdev->bd_inode,
984 if (IS_ERR(bdev_file)) {
986 return bdev_file;
990 ret = bdev_open(bdev, mode, holder, hops, bdev_file);
993 bdev_file->private_data = ERR_PTR(ret);
994 fput(bdev_file);
997 return bdev_file;
1025 static inline void bd_yield_claim(struct file *bdev_file)
1027 struct block_device *bdev = file_bdev(bdev_file);
1028 void *holder = bdev_file->private_data;
1035 if (!bdev_unclaimed(bdev_file))
1039 void bdev_release(struct file *bdev_file)
1041 struct block_device *bdev = file_bdev(bdev_file);
1042 void *holder = bdev_file->private_data;
1060 bdev_yield_write_access(bdev_file);
1063 bd_yield_claim(bdev_file);
1085 * @bdev_file: open block device
1091 void bdev_fput(struct file *bdev_file)
1093 if (WARN_ON_ONCE(bdev_file->f_op != &def_blk_fops))
1096 if (bdev_file->private_data) {
1097 struct block_device *bdev = file_bdev(bdev_file);
1101 bdev_yield_write_access(bdev_file);
1102 bd_yield_claim(bdev_file);
1108 bdev_file->private_data = BDEV_I(bdev_file->f_mapping->host);
1112 fput(bdev_file);