Преглед на файлове

hw/9pfs: Use export_flag for indicating whether fs driver use path names.

This allows us to remove another member from the struct

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Aneesh Kumar K.V преди 14 години
родител
ревизия
c98f1d4a8b
променени са 6 файла, в които са добавени 10 реда и са изтрити 14 реда
  1. 2 5
      fsdev/file-op-9p.h
  2. 1 1
      hw/9pfs/cofs.c
  3. 0 1
      hw/9pfs/virtio-9p-device.c
  4. 1 1
      hw/9pfs/virtio-9p-local.c
  5. 3 3
      hw/9pfs/virtio-9p.c
  6. 3 3
      hw/9pfs/virtio-9p.h

+ 2 - 5
fsdev/file-op-9p.h

@@ -57,15 +57,12 @@ typedef struct extended_ops {
                       mode_t, uint64_t *);
                       mode_t, uint64_t *);
 } extended_ops;
 } extended_ops;
 
 
-/* FsContext flag values */
-#define PATHNAME_FSCONTEXT 0x1
-
 /* export flags */
 /* export flags */
-#define V9FS_IMMEDIATE_WRITEOUT 0x1
+#define V9FS_IMMEDIATE_WRITEOUT     0x00000001
+#define V9FS_PATHNAME_FSCONTEXT     0x00000002
 
 
 typedef struct FsContext
 typedef struct FsContext
 {
 {
-    int flags;
     char *fs_root;
     char *fs_root;
     SecModel fs_sm;
     SecModel fs_sm;
     uid_t uid;
     uid_t uid;

+ 1 - 1
hw/9pfs/cofs.c

@@ -323,7 +323,7 @@ int v9fs_co_name_to_path(V9fsPDU *pdu, V9fsPath *dirpath,
     int err;
     int err;
     V9fsState *s = pdu->s;
     V9fsState *s = pdu->s;
 
 
-    if (s->ctx.flags & PATHNAME_FSCONTEXT) {
+    if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
         err = s->ops->name_to_path(&s->ctx, dirpath, name, path);
         err = s->ops->name_to_path(&s->ctx, dirpath, name, path);
         if (err < 0) {
         if (err < 0) {
             err = -errno;
             err = -errno;

+ 0 - 1
hw/9pfs/virtio-9p-device.c

@@ -123,7 +123,6 @@ VirtIODevice *virtio_9p_init(DeviceState *dev, V9fsConf *conf)
     memcpy(s->tag, conf->tag, len);
     memcpy(s->tag, conf->tag, len);
     s->tag_len = len;
     s->tag_len = len;
     s->ctx.uid = -1;
     s->ctx.uid = -1;
-    s->ctx.flags = 0;
 
 
     s->ops = fse->ops;
     s->ops = fse->ops;
     s->vdev.get_features = virtio_9p_get_features;
     s->vdev.get_features = virtio_9p_get_features;

+ 1 - 1
hw/9pfs/virtio-9p-local.c

@@ -702,7 +702,7 @@ static int local_init(FsContext *ctx)
     int err;
     int err;
     struct statfs stbuf;
     struct statfs stbuf;
 
 
-    ctx->flags |= PATHNAME_FSCONTEXT;
+    ctx->export_flags |= V9FS_PATHNAME_FSCONTEXT;
     err = statfs(ctx->fs_root, &stbuf);
     err = statfs(ctx->fs_root, &stbuf);
     if (!err) {
     if (!err) {
         switch (stbuf.f_type) {
         switch (stbuf.f_type) {

+ 3 - 3
hw/9pfs/virtio-9p.c

@@ -2493,7 +2493,7 @@ static void v9fs_remove(void *opaque)
         goto out_nofid;
         goto out_nofid;
     }
     }
     /* if fs driver is not path based, return EOPNOTSUPP */
     /* if fs driver is not path based, return EOPNOTSUPP */
-    if (!pdu->s->ctx.flags & PATHNAME_FSCONTEXT) {
+    if (!(pdu->s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT)) {
         err = -EOPNOTSUPP;
         err = -EOPNOTSUPP;
         goto out_err;
         goto out_err;
     }
     }
@@ -2640,7 +2640,7 @@ static void v9fs_rename(void *opaque)
     }
     }
     BUG_ON(fidp->fid_type != P9_FID_NONE);
     BUG_ON(fidp->fid_type != P9_FID_NONE);
     /* if fs driver is not path based, return EOPNOTSUPP */
     /* if fs driver is not path based, return EOPNOTSUPP */
-    if (!pdu->s->ctx.flags & PATHNAME_FSCONTEXT) {
+    if (!(pdu->s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT)) {
         err = -EOPNOTSUPP;
         err = -EOPNOTSUPP;
         goto out;
         goto out;
     }
     }
@@ -2713,7 +2713,7 @@ static int v9fs_complete_renameat(V9fsPDU *pdu, int32_t olddirfid,
     if (err < 0) {
     if (err < 0) {
         goto out;
         goto out;
     }
     }
-    if (s->ctx.flags & PATHNAME_FSCONTEXT) {
+    if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
         /* Only for path based fid  we need to do the below fixup */
         /* Only for path based fid  we need to do the below fixup */
         v9fs_fix_fid_paths(pdu, &olddirfidp->path, old_name,
         v9fs_fix_fid_paths(pdu, &olddirfidp->path, old_name,
                            &newdirfidp->path, new_name);
                            &newdirfidp->path, new_name);

+ 3 - 3
hw/9pfs/virtio-9p.h

@@ -422,21 +422,21 @@ static inline size_t do_pdu_unpack(void *dst, struct iovec *sg, int sg_count,
 
 
 static inline void v9fs_path_write_lock(V9fsState *s)
 static inline void v9fs_path_write_lock(V9fsState *s)
 {
 {
-    if (s->ctx.flags & PATHNAME_FSCONTEXT) {
+    if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
         qemu_co_rwlock_wrlock(&s->rename_lock);
         qemu_co_rwlock_wrlock(&s->rename_lock);
     }
     }
 }
 }
 
 
 static inline void v9fs_path_read_lock(V9fsState *s)
 static inline void v9fs_path_read_lock(V9fsState *s)
 {
 {
-    if (s->ctx.flags & PATHNAME_FSCONTEXT) {
+    if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
         qemu_co_rwlock_rdlock(&s->rename_lock);
         qemu_co_rwlock_rdlock(&s->rename_lock);
     }
     }
 }
 }
 
 
 static inline void v9fs_path_unlock(V9fsState *s)
 static inline void v9fs_path_unlock(V9fsState *s)
 {
 {
-    if (s->ctx.flags & PATHNAME_FSCONTEXT) {
+    if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
         qemu_co_rwlock_unlock(&s->rename_lock);
         qemu_co_rwlock_unlock(&s->rename_lock);
     }
     }
 }
 }