mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
9p: Implement TMKNOD
Synopsis
size[4] Tmknod tag[2] fid[4] name[s] mode[4] major[4] minor[4] gid[4]
size[4] Rmknod tag[2] qid[13]
Description
mknod asks the file server to create a device node with given major and
minor number, mode and gid. The qid for the new device node is returned
with the mknod reply message.
[[email protected]: Fix error handling code]
Signed-off-by: M. Mohan Kumar <[email protected]>
Signed-off-by: Venkateswararao Jujjuri <[email protected]>
Signed-off-by: Eric Van Hensbergen <[email protected]>
This commit is contained in:
parent
50cc42ff3d
commit
4b43516ab1
4 changed files with 140 additions and 3 deletions
|
|
@ -1622,3 +1622,34 @@ error:
|
|||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL(p9_client_readdir);
|
||||
|
||||
int p9_client_mknod_dotl(struct p9_fid *fid, char *name, int mode,
|
||||
dev_t rdev, gid_t gid, struct p9_qid *qid)
|
||||
{
|
||||
int err;
|
||||
struct p9_client *clnt;
|
||||
struct p9_req_t *req;
|
||||
|
||||
err = 0;
|
||||
clnt = fid->clnt;
|
||||
P9_DPRINTK(P9_DEBUG_9P, ">>> TMKNOD fid %d name %s mode %d major %d "
|
||||
"minor %d\n", fid->fid, name, mode, MAJOR(rdev), MINOR(rdev));
|
||||
req = p9_client_rpc(clnt, P9_TMKNOD, "dsdddd", fid->fid, name, mode,
|
||||
MAJOR(rdev), MINOR(rdev), gid);
|
||||
if (IS_ERR(req))
|
||||
return PTR_ERR(req);
|
||||
|
||||
err = p9pdu_readf(req->rc, clnt->proto_version, "Q", qid);
|
||||
if (err) {
|
||||
p9pdu_dump(1, req->rc);
|
||||
goto error;
|
||||
}
|
||||
P9_DPRINTK(P9_DEBUG_9P, "<<< RMKNOD qid %x.%llx.%x\n", qid->type,
|
||||
(unsigned long long)qid->path, qid->version);
|
||||
|
||||
error:
|
||||
p9_free_req(clnt, req);
|
||||
return err;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(p9_client_mknod_dotl);
|
||||
|
|
|
|||
Loading…
Reference in a new issue