RPCAUTH_nfsd4_cb,
        RPCAUTH_cache,
        RPCAUTH_nfsd,
-       RPCAUTH_gssd,
        RPCAUTH_RootEOF
 };
 
                .name = "nfsd",
                .mode = S_IFDIR | 0555,
        },
-       [RPCAUTH_gssd] = {
-               .name = "gssd",
-               .mode = S_IFDIR | 0555,
-       },
 };
 
 /*
 }
 EXPORT_SYMBOL_GPL(rpc_put_sb_net);
 
-static const struct rpc_filelist gssd_dummy_clnt_dir[] = {
-       [0] = {
-               .name = "clntXX",
-               .mode = S_IFDIR | 0555,
-       },
-};
-
 static ssize_t
 dummy_downcall(struct file *filp, const char __user *src, size_t len)
 {
 }
 DEFINE_SHOW_ATTRIBUTE(rpc_dummy_info);
 
-static const struct rpc_filelist gssd_dummy_info_file[] = {
-       [0] = {
-               .name = "info",
-               .i_fop = &rpc_dummy_info_fops,
-               .mode = S_IFREG | 0400,
-       },
-};
-
 /**
  * rpc_gssd_dummy_populate - create a dummy gssd pipe
  * @root:      root of the rpc_pipefs filesystem
 static int
 rpc_gssd_dummy_populate(struct dentry *root, struct rpc_pipe *pipe_data)
 {
-       int ret = 0;
-       struct dentry *gssd_dentry;
-       struct dentry *clnt_dentry = NULL;
+       struct dentry *gssd_dentry, *clnt_dentry;
+       int err;
 
-       /* We should never get this far if "gssd" doesn't exist */
-       gssd_dentry = try_lookup_noperm(&QSTR(files[RPCAUTH_gssd].name), root);
-       if (!gssd_dentry)
+       gssd_dentry = rpc_new_dir(root, "gssd", 0555, NULL);
+       if (IS_ERR(gssd_dentry))
                return -ENOENT;
 
-       ret = rpc_populate(gssd_dentry, gssd_dummy_clnt_dir, 0, 1, NULL);
-       if (ret) {
-               dput(gssd_dentry);
-               return ret;
-       }
-
-       clnt_dentry = try_lookup_noperm(&QSTR(gssd_dummy_clnt_dir[0].name),
-                                         gssd_dentry);
-       dput(gssd_dentry);
-       if (!clnt_dentry)
+       clnt_dentry = rpc_new_dir(gssd_dentry, "clntXX", 0555, NULL);
+       if (IS_ERR(clnt_dentry))
                return -ENOENT;
 
-       ret = rpc_populate(clnt_dentry, gssd_dummy_info_file, 0, 1, NULL);
-       if (ret) {
-               dput(clnt_dentry);
-               return ret;
-       }
-       ret = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
-       dput(clnt_dentry);
-       return ret;
+       err = rpc_new_file(clnt_dentry, "info", 0400,
+                                  &rpc_dummy_info_fops, NULL);
+       if (!err)
+               err = rpc_mkpipe_dentry(clnt_dentry, "gssd", NULL, pipe_data);
+       return err;
 }
 
 static int