• Home
  • Raw
  • Download

Lines Matching full:real

95 static int ovl_real_fdget_meta(const struct file *file, struct fd *real,  in ovl_real_fdget_meta()  argument
101 real->flags = 0; in ovl_real_fdget_meta()
102 real->file = file->private_data; in ovl_real_fdget_meta()
110 if (unlikely(file_inode(real->file) != realinode)) { in ovl_real_fdget_meta()
111 real->flags = FDPUT_FPUT; in ovl_real_fdget_meta()
112 real->file = ovl_open_realfile(file, realinode); in ovl_real_fdget_meta()
114 return PTR_ERR_OR_ZERO(real->file); in ovl_real_fdget_meta()
118 if (unlikely((file->f_flags ^ real->file->f_flags) & ~OVL_OPEN_FLAGS)) in ovl_real_fdget_meta()
119 return ovl_change_flags(real->file, file->f_flags); in ovl_real_fdget_meta()
124 static int ovl_real_fdget(const struct file *file, struct fd *real) in ovl_real_fdget() argument
126 return ovl_real_fdget_meta(file, real, false); in ovl_real_fdget()
160 struct fd real; in ovl_llseek() local
165 * The two special cases below do not need to involve real fs, in ovl_llseek()
176 ret = ovl_real_fdget(file, &real); in ovl_llseek()
182 * through copy up and modified on read/write, but only real in ovl_llseek()
183 * fs knows how to SEEK_HOLE/SEEK_DATA and real fs may impose in ovl_llseek()
185 * files, so we use the real file to perform seeks. in ovl_llseek()
188 real.file->f_pos = file->f_pos; in ovl_llseek()
191 ret = vfs_llseek(real.file, offset, whence); in ovl_llseek()
194 file->f_pos = real.file->f_pos; in ovl_llseek()
197 fdput(real); in ovl_llseek()
244 struct fd real; in ovl_read_iter() local
251 ret = ovl_real_fdget(file, &real); in ovl_read_iter()
256 ret = vfs_iter_read(real.file, iter, &iocb->ki_pos, in ovl_read_iter()
262 fdput(real); in ovl_read_iter()
271 struct fd real; in ovl_write_iter() local
285 ret = ovl_real_fdget(file, &real); in ovl_write_iter()
290 file_start_write(real.file); in ovl_write_iter()
291 ret = vfs_iter_write(real.file, iter, &iocb->ki_pos, in ovl_write_iter()
293 file_end_write(real.file); in ovl_write_iter()
299 fdput(real); in ovl_write_iter()
309 struct fd real; in ovl_fsync() local
313 ret = ovl_real_fdget_meta(file, &real, !datasync); in ovl_fsync()
318 if (file_inode(real.file) == ovl_inode_upper(file_inode(file))) { in ovl_fsync()
320 ret = vfs_fsync_range(real.file, start, end, datasync); in ovl_fsync()
324 fdput(real); in ovl_fsync()
363 struct fd real; in ovl_fallocate() local
367 ret = ovl_real_fdget(file, &real); in ovl_fallocate()
372 ret = vfs_fallocate(real.file, mode, offset, len); in ovl_fallocate()
378 fdput(real); in ovl_fallocate()
385 struct fd real; in ovl_fadvise() local
389 ret = ovl_real_fdget(file, &real); in ovl_fadvise()
394 ret = vfs_fadvise(real.file, offset, len, advice); in ovl_fadvise()
397 fdput(real); in ovl_fadvise()
405 struct fd real; in ovl_real_ioctl() local
409 ret = ovl_real_fdget(file, &real); in ovl_real_ioctl()
414 ret = security_file_ioctl(real.file, cmd, arg); in ovl_real_ioctl()
416 ret = vfs_ioctl(real.file, cmd, arg); in ovl_real_ioctl()
419 fdput(real); in ovl_real_ioctl()