fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / nbd.h
index f95d51f..0f3e693 100644 (file)
@@ -15,6 +15,8 @@
 #ifndef LINUX_NBD_H
 #define LINUX_NBD_H
 
+#include <linux/types.h>
+
 #define NBD_SET_SOCK   _IO( 0xab, 0 )
 #define NBD_SET_BLKSIZE        _IO( 0xab, 1 )
 #define NBD_SET_SIZE   _IO( 0xab, 2 )
@@ -38,6 +40,7 @@ enum {
 #ifdef __KERNEL__
 
 #include <linux/wait.h>
+#include <linux/mutex.h>
 
 /* values for flags field */
 #define NBD_READ_ONLY 0x0001
@@ -57,10 +60,11 @@ struct nbd_device {
        struct request *active_req;
        wait_queue_head_t active_wq;
 
-       struct semaphore tx_lock;
+       struct mutex tx_lock;
        struct gendisk *disk;
        int blksize;
        u64 bytesize;
+       pid_t pid; /* pid of nbd-client, if attached */
 };
 
 #endif
@@ -76,11 +80,11 @@ struct nbd_device {
  * server. All data are in network byte order.
  */
 struct nbd_request {
-       u32 magic;
-       u32 type;       /* == READ || == WRITE  */
+       __be32 magic;
+       __be32 type;    /* == READ || == WRITE  */
        char handle[8];
-       u64 from;
-       u32 len;
+       __be64 from;
+       __be32 len;
 }
 #ifdef __GNUC__
        __attribute__ ((packed))
@@ -92,8 +96,8 @@ struct nbd_request {
  * it has completed an I/O request (or an error occurs).
  */
 struct nbd_reply {
-       u32 magic;
-       u32 error;              /* 0 = ok, else error   */
+       __be32 magic;
+       __be32 error;           /* 0 = ok, else error   */
        char handle[8];         /* handle you got from request  */
 };
 #endif