9p: rework client code to use new protocol support functions
[linux-2.6.git] / include / net / 9p / client.h
index bb8b0ed..1e49b4d 100644 (file)
@@ -77,11 +77,11 @@ enum p9_req_status_t {
  * struct p9_req_t - request slots
  * @status: status of this request slot
  * @t_err: transport error
+ * @flush_tag: tag of request being flushed (for flush requests)
  * @wq: wait_queue for the client to block on for this request
  * @tc: the request fcall structure
  * @rc: the response fcall structure
  * @aux: transport specific data (provided for trans_fd migration)
- * @tag: tag on request (BUG: redundant)
  * @req_list: link for higher level objects to chain requests
  *
  * Transport use an array to track outstanding requests
@@ -98,13 +98,12 @@ enum p9_req_status_t {
 struct p9_req_t {
        int status;
        int t_err;
+       u16 flush_tag;
        wait_queue_head_t *wq;
        struct p9_fcall *tc;
        struct p9_fcall *rc;
-       u16 flush_tag;
        void *aux;
 
-       int tag;
        struct list_head req_list;
 };
 
@@ -163,8 +162,6 @@ struct p9_client {
  * @uid: the numeric uid of the local user who owns this handle
  * @aux: transport specific information (unused?)
  * @rdir_fpos: tracks offset of file position when reading directory contents
- * @rdir_pos: (unused?)
- * @rdir_fcall: holds response of last directory read request
  * @flist: per-client-instance fid tracking
  * @dlist: per-dentry fid tracking
  *
@@ -181,8 +178,6 @@ struct p9_fid {
        void *aux;
 
        int rdir_fpos;
-       int rdir_pos;
-       struct p9_fcall *rdir_fcall;
        struct list_head flist;
        struct list_head dlist; /* list of all fids attached to a dentry */
 };
@@ -205,11 +200,12 @@ int p9_client_read(struct p9_fid *fid, char *data, char __user *udata,
                                                        u64 offset, u32 count);
 int p9_client_write(struct p9_fid *fid, char *data, const char __user *udata,
                                                        u64 offset, u32 count);
-struct p9_stat *p9_client_stat(struct p9_fid *fid);
+struct p9_wstat *p9_client_stat(struct p9_fid *fid);
 int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst);
-struct p9_stat *p9_client_dirread(struct p9_fid *fid, u64 offset);
 
 struct p9_req_t *p9_tag_lookup(struct p9_client *, u16);
 void p9_client_cb(struct p9_client *c, struct p9_req_t *req);
 
+void p9stat_free(struct p9_wstat *);
+
 #endif /* NET_9P_CLIENT_H */