hw/9pfs: Move fid pathname tracking to seperate data type.

This enables us to add handles to track fids later. The
V9fsPath added is similar to V9fsString except that the
size include the NULL byte also.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
This commit is contained in:
Aneesh Kumar K.V 2011-09-09 15:14:18 +05:30
parent 02cb7f3a25
commit 2289be19ae
9 changed files with 552 additions and 303 deletions

View file

@ -17,14 +17,14 @@
#include "qemu-coroutine.h"
#include "virtio-9p-coth.h"
int v9fs_co_llistxattr(V9fsState *s, V9fsString *path, void *value, size_t size)
int v9fs_co_llistxattr(V9fsState *s, V9fsPath *path, void *value, size_t size)
{
int err;
qemu_co_rwlock_rdlock(&s->rename_lock);
v9fs_co_run_in_worker(
{
err = s->ops->llistxattr(&s->ctx, path->data, value, size);
err = s->ops->llistxattr(&s->ctx, path, value, size);
if (err < 0) {
err = -errno;
}
@ -33,7 +33,7 @@ int v9fs_co_llistxattr(V9fsState *s, V9fsString *path, void *value, size_t size)
return err;
}
int v9fs_co_lgetxattr(V9fsState *s, V9fsString *path,
int v9fs_co_lgetxattr(V9fsState *s, V9fsPath *path,
V9fsString *xattr_name,
void *value, size_t size)
{
@ -42,7 +42,7 @@ int v9fs_co_lgetxattr(V9fsState *s, V9fsString *path,
qemu_co_rwlock_rdlock(&s->rename_lock);
v9fs_co_run_in_worker(
{
err = s->ops->lgetxattr(&s->ctx, path->data,
err = s->ops->lgetxattr(&s->ctx, path,
xattr_name->data,
value, size);
if (err < 0) {
@ -53,7 +53,7 @@ int v9fs_co_lgetxattr(V9fsState *s, V9fsString *path,
return err;
}
int v9fs_co_lsetxattr(V9fsState *s, V9fsString *path,
int v9fs_co_lsetxattr(V9fsState *s, V9fsPath *path,
V9fsString *xattr_name, void *value,
size_t size, int flags)
{
@ -62,7 +62,7 @@ int v9fs_co_lsetxattr(V9fsState *s, V9fsString *path,
qemu_co_rwlock_rdlock(&s->rename_lock);
v9fs_co_run_in_worker(
{
err = s->ops->lsetxattr(&s->ctx, path->data,
err = s->ops->lsetxattr(&s->ctx, path,
xattr_name->data, value,
size, flags);
if (err < 0) {
@ -73,7 +73,7 @@ int v9fs_co_lsetxattr(V9fsState *s, V9fsString *path,
return err;
}
int v9fs_co_lremovexattr(V9fsState *s, V9fsString *path,
int v9fs_co_lremovexattr(V9fsState *s, V9fsPath *path,
V9fsString *xattr_name)
{
int err;
@ -81,8 +81,7 @@ int v9fs_co_lremovexattr(V9fsState *s, V9fsString *path,
qemu_co_rwlock_rdlock(&s->rename_lock);
v9fs_co_run_in_worker(
{
err = s->ops->lremovexattr(&s->ctx, path->data,
xattr_name->data);
err = s->ops->lremovexattr(&s->ctx, path, xattr_name->data);
if (err < 0) {
err = -errno;
}