Lines Matching full:real
92 static int ovl_real_fdget_meta(const struct file *file, struct fd *real, in ovl_real_fdget_meta() argument
100 real->word = (unsigned long)realfile; in ovl_real_fdget_meta()
120 real->word = (unsigned long)f | FDPUT_FPUT; in ovl_real_fdget_meta()
131 static int ovl_real_fdget(const struct file *file, struct fd *real) in ovl_real_fdget() argument
137 real->word = (unsigned long)f; in ovl_real_fdget()
141 return ovl_real_fdget_meta(file, real, false); in ovl_real_fdget()
186 struct fd real; in ovl_llseek() local
191 * The two special cases below do not need to involve real fs, in ovl_llseek()
202 ret = ovl_real_fdget(file, &real); in ovl_llseek()
208 * through copy up and modified on read/write, but only real in ovl_llseek()
209 * fs knows how to SEEK_HOLE/SEEK_DATA and real fs may impose in ovl_llseek()
211 * files, so we use the real file to perform seeks. in ovl_llseek()
214 fd_file(real)->f_pos = file->f_pos; in ovl_llseek()
217 ret = vfs_llseek(fd_file(real), offset, whence); in ovl_llseek()
220 file->f_pos = fd_file(real)->f_pos; in ovl_llseek()
223 fdput(real); in ovl_llseek()
270 struct fd real; in ovl_read_iter() local
281 ret = ovl_real_fdget(file, &real); in ovl_read_iter()
285 ret = backing_file_read_iter(fd_file(real), iter, iocb, iocb->ki_flags, in ovl_read_iter()
287 fdput(real); in ovl_read_iter()
296 struct fd real; in ovl_write_iter() local
312 ret = ovl_real_fdget(file, &real); in ovl_write_iter()
324 ret = backing_file_write_iter(fd_file(real), iter, iocb, ifl, &ctx); in ovl_write_iter()
325 fdput(real); in ovl_write_iter()
337 struct fd real; in ovl_splice_read() local
345 ret = ovl_real_fdget(in, &real); in ovl_splice_read()
349 ret = backing_file_splice_read(fd_file(real), ppos, pipe, len, flags, &ctx); in ovl_splice_read()
350 fdput(real); in ovl_splice_read()
358 * and file_start_write(fd_file(real)) in ovl_write_iter().
361 * the real file.
366 struct fd real; in ovl_splice_write() local
379 ret = ovl_real_fdget(out, &real); in ovl_splice_write()
383 ret = backing_file_splice_write(pipe, fd_file(real), ppos, len, flags, &ctx); in ovl_splice_write()
384 fdput(real); in ovl_splice_write()
394 struct fd real; in ovl_fsync() local
402 ret = ovl_real_fdget_meta(file, &real, !datasync); in ovl_fsync()
407 if (file_inode(fd_file(real)) == ovl_inode_upper(file_inode(file))) { in ovl_fsync()
409 ret = vfs_fsync_range(fd_file(real), start, end, datasync); in ovl_fsync()
413 fdput(real); in ovl_fsync()
433 struct fd real; in ovl_fallocate() local
444 ret = ovl_real_fdget(file, &real); in ovl_fallocate()
449 ret = vfs_fallocate(fd_file(real), mode, offset, len); in ovl_fallocate()
455 fdput(real); in ovl_fallocate()
465 struct fd real; in ovl_fadvise() local
469 ret = ovl_real_fdget(file, &real); in ovl_fadvise()
474 ret = vfs_fadvise(fd_file(real), offset, len, advice); in ovl_fadvise()
477 fdput(real); in ovl_fadvise()
585 struct fd real; in ovl_flush() local
589 err = ovl_real_fdget(file, &real); in ovl_flush()
593 if (fd_file(real)->f_op->flush) { in ovl_flush()
595 err = fd_file(real)->f_op->flush(fd_file(real), id); in ovl_flush()
598 fdput(real); in ovl_flush()