]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/9p/client.c
net/9p: Implement TXATTRCREATE 9p call
[net-next-2.6.git] / net / 9p / client.c
index ec80ee71d45346a012c25c70db90bb03eb982c43..43396acd714a0b1b3f6ba256423577ec5a3eb167 100644 (file)
@@ -1672,6 +1672,31 @@ error:
 }
 EXPORT_SYMBOL_GPL(p9_client_xattrwalk);
 
+int p9_client_xattrcreate(struct p9_fid *fid, const char *name,
+                       u64 attr_size, int flags)
+{
+       int err;
+       struct p9_req_t *req;
+       struct p9_client *clnt;
+
+       P9_DPRINTK(P9_DEBUG_9P,
+               ">>> TXATTRCREATE fid %d name  %s size %lld flag %d\n",
+               fid->fid, name, (long long)attr_size, flags);
+       err = 0;
+       clnt = fid->clnt;
+       req = p9_client_rpc(clnt, P9_TXATTRCREATE, "dsqd",
+                       fid->fid, name, attr_size, flags);
+       if (IS_ERR(req)) {
+               err = PTR_ERR(req);
+               goto error;
+       }
+       P9_DPRINTK(P9_DEBUG_9P, "<<< RXATTRCREATE fid %d\n", fid->fid);
+       p9_free_req(clnt, req);
+error:
+       return err;
+}
+EXPORT_SYMBOL_GPL(p9_client_xattrcreate);
+
 int p9_client_readdir(struct p9_fid *fid, char *data, u32 count, u64 offset)
 {
        int err, rsize, total;