On Wed, Jan 20, 2016 at 03:20:34PM -0800, Nikhilesh Reddy wrote: > Add support for filesystem passthrough read/write of files > when enabled in userspace through the option FUSE_PASSTHROUGH. [...] > + daemon_fd = (int)open_out->passthrough_fd; > + if (daemon_fd < 0) > + return; > + > + passthrough_filp = fget_raw(daemon_fd); > + if (!passthrough_filp) > + return; > + > + passthrough_inode = file_inode(passthrough_filp); > + passthrough_sb = passthrough_inode->i_sb; > + fs_stack_depth = passthrough_sb->s_stack_depth + 1; > + > + /* If we reached the stacking limit go through regular io */ > + if (fs_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { > + pr_err("FUSE: maximum fs stacking depth exceeded, cannot use passthrough for this file\n"); > + return; > + } I think this needs an fput() in the error case to prevent a refcount leak.
Attachment:
signature.asc
Description: Digital signature