On Sat, 30 Jul 2011 20:52:42 -0400 Jim Rees <rees@xxxxxxxxx> wrote: > Signed-off-by: Jim Rees <rees@xxxxxxxxx> > Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxxxxxx> > Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> > Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxx> > [upcall bugfixes] > Signed-off-by: Peng Tao <peng_tao@xxxxxxx> > --- > fs/nfs/blocklayout/Makefile | 2 +- > fs/nfs/blocklayout/blocklayout.c | 42 ++++++++ > fs/nfs/blocklayout/blocklayout.h | 40 +++++++ > fs/nfs/blocklayout/blocklayoutdev.c | 191 +++++++++++++++++++++++++++++++++++ > fs/nfs/client.c | 2 +- > include/linux/nfs.h | 2 + > 6 files changed, 277 insertions(+), 2 deletions(-) > create mode 100644 fs/nfs/blocklayout/blocklayoutdev.c > [...] > +static const struct rpc_pipe_ops bl_upcall_ops = { > + .upcall = bl_pipe_upcall, > + .downcall = bl_pipe_downcall, > + .destroy_msg = bl_pipe_destroy_msg, > +}; > + > static int __init nfs4blocklayout_init(void) > { > + struct vfsmount *mnt; > + struct path path; > int ret; > > dprintk("%s: NFSv4 Block Layout Driver Registering...\n", __func__); > > ret = pnfs_register_layoutdriver(&blocklayout_type); > + if (ret) > + goto out; > + > + init_waitqueue_head(&bl_wq); > + > + mnt = rpc_get_mount(); > + if (IS_ERR(mnt)) { > + ret = PTR_ERR(mnt); > + goto out_remove; > + } > + Hmm...sorry for the late review on this, but I was just looking over this code as an example for some other stuff I'm working on... I notice that the above code does a rpc_get_mount to get a reference to the rpc_pipefs mount, but I don't see where that reference is ever put. > + ret = vfs_path_lookup(mnt->mnt_root, > + mnt, > + NFS_PIPE_DIRNAME, 0, &path); > + if (ret) > + goto out_remove; > + > + bl_device_pipe = rpc_mkpipe(path.dentry, "blocklayout", NULL, > + &bl_upcall_ops, 0); > + if (IS_ERR(bl_device_pipe)) { > + ret = PTR_ERR(bl_device_pipe); > + goto out_remove; > + } > +out: > + return ret; > + > +out_remove: > + pnfs_unregister_layoutdriver(&blocklayout_type); > return ret; > } > -- Jeff Layton <jlayton@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html