On Wed 20 Jan 2016 03:38:41 PM PST, Jann Horn wrote:
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.

Whoops my bad .. forgot to commit! :(
Thanks for the catch
fixed ... sending patch v4 in a few minutes
--
Thanks
Nikhilesh Reddy

Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project.

Reply via email to