mirror of https://github.com/xqemu/xqemu.git
hw/9pfs: Add yield support for symlin coroutine
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
This commit is contained in:
parent
baaa86d9f5
commit
02ac7a34ff
|
@ -169,3 +169,23 @@ int v9fs_co_rename(V9fsState *s, V9fsString *oldpath, V9fsString *newpath)
|
|||
});
|
||||
return err;
|
||||
}
|
||||
|
||||
int v9fs_co_symlink(V9fsState *s, V9fsFidState *fidp,
|
||||
const char *oldpath, const char *newpath, gid_t gid)
|
||||
{
|
||||
int err;
|
||||
FsCred cred;
|
||||
|
||||
cred_init(&cred);
|
||||
cred.fc_uid = fidp->uid;
|
||||
cred.fc_gid = gid;
|
||||
cred.fc_mode = 0777;
|
||||
v9fs_co_run_in_worker(
|
||||
{
|
||||
err = s->ops->symlink(&s->ctx, oldpath, newpath, &cred);
|
||||
if (err < 0) {
|
||||
err = -errno;
|
||||
}
|
||||
});
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -86,4 +86,6 @@ extern int v9fs_co_lremovexattr(V9fsState *, V9fsString *, V9fsString *);
|
|||
extern int v9fs_co_closedir(V9fsState *, V9fsFidState *);
|
||||
extern int v9fs_co_close(V9fsState *, V9fsFidState *);
|
||||
extern int v9fs_co_fsync(V9fsState *, V9fsFidState *, int);
|
||||
extern int v9fs_co_symlink(V9fsState *, V9fsFidState *, const char *,
|
||||
const char *, gid_t);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue