Lines Matching refs:file
8 #include <linux/file.h>
23 int hmdfs_file_open_local(struct inode *inode, struct file *file)
26 struct file *lower_file = NULL;
38 hmdfs_get_lower_path(file->f_path.dentry, &lower_path);
41 lower_file = dentry_open(&lower_path, file->f_flags | O_DIRECT,
44 lower_file = dentry_open(&lower_path, file->f_flags, cred);
51 file->private_data = gfi;
52 hmdfs_update_upper_file(file, lower_file);
53 if (file->f_flags & (O_RDWR | O_WRONLY))
60 int hmdfs_file_release_local(struct inode *inode, struct file *file)
62 struct hmdfs_file_info *gfi = hmdfs_f(file);
65 if (file->f_flags & (O_RDWR | O_WRONLY))
67 file->private_data = NULL;
73 static void hmdfs_file_accessed(struct file *file)
75 struct file *lower_file = hmdfs_f(file)->lower_file;
76 struct inode *inode = file_inode(file);
79 if (file->f_flags & O_NOATIME)
85 ssize_t hmdfs_do_read_iter(struct file *file, struct iov_iter *iter,
89 struct file *lower_file = hmdfs_f(file)->lower_file;
95 if (file->f_inode->i_mapping != NULL &&
96 file->f_inode->i_mapping->a_ops == &hmdfs_aops_cloud) {
102 hmdfs_file_accessed(file);
112 static void hmdfs_file_modified(struct file *file)
114 struct inode *inode = file_inode(file);
115 struct dentry *dentry = file_dentry(file);
116 struct file *lower_file = hmdfs_f(file)->lower_file;
128 ssize_t hmdfs_do_write_iter(struct file *file, struct iov_iter *iter,
132 struct file *lower_file = hmdfs_f(file)->lower_file;
133 struct inode *inode = file_inode(file);
140 ret = file_remove_privs(file);
148 hmdfs_file_modified(file);
160 int hmdfs_fsync_local(struct file *file, loff_t start, loff_t end, int datasync)
163 struct file *lower_file = hmdfs_f(file)->lower_file;
165 err = __generic_file_fsync(file, start, end, datasync);
174 loff_t hmdfs_file_llseek_local(struct file *file, loff_t offset, int whence)
177 struct file *lower_file;
179 lower_file = hmdfs_f(file)->lower_file;
180 lower_file->f_pos = file->f_pos;
182 file->f_pos = lower_file->f_pos;
187 int hmdfs_file_mmap_local(struct file *file, struct vm_area_struct *vma)
189 struct hmdfs_file_info *private_data = file->private_data;
190 struct file *realfile = NULL;
203 if (WARN_ON(file != vma->vm_file))
211 fput(file);
213 file_accessed(file);
231 static int hmdfs_iterate_local(struct file *file, struct dir_context *ctx)
235 struct file *lower_file = hmdfs_f(file)->lower_file;
240 lower_file->f_pos = file->f_pos;
242 file->f_pos = lower_file->f_pos;
247 trace_hmdfs_iterate_local(file->f_path.dentry, start_pos, ctx->pos,
252 int hmdfs_dir_open_local(struct inode *inode, struct file *file)
255 struct file *lower_file = NULL;
256 struct dentry *dentry = file->f_path.dentry;
270 lower_file = dentry_open(&lower_path, file->f_flags, cred);
277 file->private_data = gfi;
286 static int hmdfs_dir_release_local(struct inode *inode, struct file *file)
288 struct hmdfs_file_info *gfi = hmdfs_f(file);
290 file->private_data = NULL;
304 static int __hmdfs_ioc_set_share_path(struct file *file,
307 struct super_block *sb = file->f_inode->i_sb;
318 if (!src.file)
321 /* only reg file can be shared */
322 if (!S_ISREG(src.file->f_inode->i_mode)) {
327 /* share file is not allowed to be shared */
328 if (hmdfs_is_share_file(src.file)) {
333 dentry = src.file->f_path.dentry;
339 dir_path = hmdfs_get_dentry_relative_path(file->f_path.dentry);
356 err = insert_share_item(st, &relative_path, src.file, sc->cid);
363 update_share_item(item, src.file, sc->cid);
375 static int hmdfs_ioc_set_share_path(struct file *file, unsigned long arg)
383 return __hmdfs_ioc_set_share_path(file, &sc);
386 static long hmdfs_dir_ioctl_local(struct file *file, unsigned int cmd,
391 return hmdfs_ioc_set_share_path(file, arg);