Merge remote-tracking branch 'aneesh/for-upstream-3' into staging
authorAnthony Liguori <aliguori@us.ibm.com>
Thu, 8 Sep 2011 13:52:59 +0000 (08:52 -0500)
committerAnthony Liguori <aliguori@us.ibm.com>
Thu, 8 Sep 2011 13:52:59 +0000 (08:52 -0500)
1  2 
hw/9pfs/virtio-9p.h

diff --combined hw/9pfs/virtio-9p.h
index d00a502dccd196415a42286d15d7473e445beddf,28fe1ff3a3e74954c5be23515667e50860128a2b..9d1b508e1642896133b8d2fef6583470d6a5bf08
@@@ -5,6 -5,7 +5,7 @@@
  #include <dirent.h>
  #include <sys/time.h>
  #include <utime.h>
+ #include <sys/resource.h>
  #include "hw/virtio.h"
  #include "fsdev/file-op-9p.h"
  
@@@ -101,6 -102,9 +102,9 @@@ enum p9_proto_version 
  #define P9_NOTAG    (u16)(~0)
  #define P9_NOFID    (u32)(~0)
  #define P9_MAXWELEM 16
+ #define FID_REFERENCED          0x1
+ #define FID_NON_RECLAIMABLE     0x2
  static inline const char *rpath(FsContext *ctx, const char *path, char *buffer)
  {
      snprintf(buffer, PATH_MAX, "%s/%s", ctx->fs_root, path);
@@@ -198,12 -202,21 +202,21 @@@ struct V9fsFidStat
      int32_t fid;
      V9fsString path;
      union {
-       int fd;
-       DIR *dir;
-       V9fsXattr xattr;
+         int fd;
+         DIR *dir;
+         V9fsXattr xattr;
      } fs;
+     union {
+         int fd;
+         DIR *dir;
+     } fs_reclaim;
+     int flags;
+     int open_flags;
      uid_t uid;
+     int ref;
+     int clunked;
      V9fsFidState *next;
+     V9fsFidState *rclm_lst;
  };
  
  typedef struct V9fsState
@@@ -314,7 -327,7 +327,7 @@@ struct virtio_9p_confi
      uint16_t tag_len;
      /* Variable size tag name */
      uint8_t tag[0];
 -} __attribute__((packed));
 +} QEMU_PACKED;
  
  typedef struct V9fsMkState {
      V9fsPDU *pdu;
@@@ -352,6 -365,9 +365,9 @@@ typedef struct V9fsGetloc
      V9fsString client_id;
  } V9fsGetlock;
  
+ extern int open_fd_hw;
+ extern int total_open_fd;
  size_t pdu_packunpack(void *addr, struct iovec *sg, int sg_count,
                        size_t offset, size_t size, int pack);
  
@@@ -362,4 -378,6 +378,6 @@@ static inline size_t do_pdu_unpack(voi
  }
  
  extern void handle_9p_output(VirtIODevice *vdev, VirtQueue *vq);
+ extern void virtio_9p_set_fd_limit(void);
+ extern void v9fs_reclaim_fd(V9fsState *s);
  #endif