]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/9p/client.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/cpupowerutils
[mv-sheeva.git] / net / 9p / client.c
index c4b77f3835823f835c9df990aeed3ca87fa4745a..0505a03c374c1599cac7bffbf1ec6d0af311910e 100644 (file)
@@ -841,8 +841,8 @@ struct p9_client *p9_client_create(const char *dev_name, char *options)
        if (err)
                goto destroy_fidpool;
 
-       if ((clnt->msize+P9_IOHDRSZ) > clnt->trans_mod->maxsize)
-               clnt->msize = clnt->trans_mod->maxsize-P9_IOHDRSZ;
+       if (clnt->msize > clnt->trans_mod->maxsize)
+               clnt->msize = clnt->trans_mod->maxsize;
 
        err = p9_client_version(clnt);
        if (err)
@@ -1303,6 +1303,29 @@ error:
 }
 EXPORT_SYMBOL(p9_client_remove);
 
+int p9_client_unlinkat(struct p9_fid *dfid, const char *name, int flags)
+{
+       int err = 0;
+       struct p9_req_t *req;
+       struct p9_client *clnt;
+
+       P9_DPRINTK(P9_DEBUG_9P, ">>> TUNLINKAT fid %d %s %d\n",
+                  dfid->fid, name, flags);
+
+       clnt = dfid->clnt;
+       req = p9_client_rpc(clnt, P9_TUNLINKAT, "dsd", dfid->fid, name, flags);
+       if (IS_ERR(req)) {
+               err = PTR_ERR(req);
+               goto error;
+       }
+       P9_DPRINTK(P9_DEBUG_9P, "<<< RUNLINKAT fid %d %s\n", dfid->fid, name);
+
+       p9_free_req(clnt, req);
+error:
+       return err;
+}
+EXPORT_SYMBOL(p9_client_unlinkat);
+
 int
 p9_client_read(struct p9_fid *fid, char *data, char __user *udata, u64 offset,
                                                                u32 count)