[NETLINK]: Introduce nested and byteorder flag to netlink attribute
[cascardo/linux.git] / net / sunrpc / rpc_pipe.c
index e787b6a..669e12a 100644 (file)
@@ -132,8 +132,7 @@ rpc_close_pipes(struct inode *inode)
                rpci->nwriters = 0;
                if (ops->release_pipe)
                        ops->release_pipe(inode);
-               cancel_delayed_work(&rpci->queue_timeout);
-               flush_workqueue(rpciod_workqueue);
+               cancel_delayed_work_sync(&rpci->queue_timeout);
        }
        rpc_inode_setowner(inode, NULL);
        mutex_unlock(&inode->i_mutex);
@@ -460,21 +459,19 @@ static struct dentry_operations rpc_dentry_operations = {
 static int
 rpc_lookup_parent(char *path, struct nameidata *nd)
 {
+       struct vfsmount *mnt;
+
        if (path[0] == '\0')
                return -ENOENT;
-       nd->mnt = rpc_get_mount();
-       if (IS_ERR(nd->mnt)) {
+
+       mnt = rpc_get_mount();
+       if (IS_ERR(mnt)) {
                printk(KERN_WARNING "%s: %s failed to mount "
                               "pseudofilesystem \n", __FILE__, __FUNCTION__);
-               return PTR_ERR(nd->mnt);
+               return PTR_ERR(mnt);
        }
-       mntget(nd->mnt);
-       nd->dentry = dget(rpc_mount->mnt_root);
-       nd->last_type = LAST_ROOT;
-       nd->flags = LOOKUP_PARENT;
-       nd->depth = 0;
 
-       if (path_walk(path, nd)) {
+       if (vfs_path_lookup(mnt->mnt_root, mnt, path, LOOKUP_PARENT, nd)) {
                printk(KERN_WARNING "%s: %s failed to find path %s\n",
                                __FILE__, __FUNCTION__, path);
                rpc_put_mount();
@@ -869,7 +866,7 @@ int register_rpc_pipefs(void)
                                sizeof(struct rpc_inode),
                                0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT|
                                                SLAB_MEM_SPREAD),
-                               init_once, NULL);
+                               init_once);
        if (!rpc_inode_cachep)
                return -ENOMEM;
        err = register_filesystem(&rpc_pipe_fs_type);