fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / fs / ncpfs / sock.c
index 6593a5c..e496d8b 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/config.h>
 
 #include <linux/time.h>
 #include <linux/errno.h>
@@ -171,9 +170,9 @@ static inline void __ncp_abort_request(struct ncp_server *server, struct ncp_req
 
 static inline void ncp_abort_request(struct ncp_server *server, struct ncp_request_reply *req, int err)
 {
-       down(&server->rcv.creq_sem);
+       mutex_lock(&server->rcv.creq_mutex);
        __ncp_abort_request(server, req, err);
-       up(&server->rcv.creq_sem);
+       mutex_unlock(&server->rcv.creq_mutex);
 }
 
 static inline void __ncptcp_abort(struct ncp_server *server)
@@ -303,20 +302,20 @@ static inline void __ncp_start_request(struct ncp_server *server, struct ncp_req
 
 static int ncp_add_request(struct ncp_server *server, struct ncp_request_reply *req)
 {
-       down(&server->rcv.creq_sem);
+       mutex_lock(&server->rcv.creq_mutex);
        if (!ncp_conn_valid(server)) {
-               up(&server->rcv.creq_sem);
+               mutex_unlock(&server->rcv.creq_mutex);
                printk(KERN_ERR "ncpfs: tcp: Server died\n");
                return -EIO;
        }
        if (server->tx.creq || server->rcv.creq) {
                req->status = RQ_QUEUED;
                list_add_tail(&req->req, &server->tx.requests);
-               up(&server->rcv.creq_sem);
+               mutex_unlock(&server->rcv.creq_mutex);
                return 0;
        }
        __ncp_start_request(server, req);
-       up(&server->rcv.creq_sem);
+       mutex_unlock(&server->rcv.creq_mutex);
        return 0;
 }
 
@@ -351,9 +350,10 @@ static void info_server(struct ncp_server *server, unsigned int id, const void *
        }
 }
 
-void ncpdgram_rcv_proc(void *s)
+void ncpdgram_rcv_proc(struct work_struct *work)
 {
-       struct ncp_server *server = s;
+       struct ncp_server *server =
+               container_of(work, struct ncp_server, rcv.tq);
        struct socket* sock;
        
        sock = server->ncp_sock;
@@ -400,7 +400,7 @@ void ncpdgram_rcv_proc(void *s)
                                info_server(server, 0, server->unexpected_packet.data, result);
                                continue;
                        }
-                       down(&server->rcv.creq_sem);            
+                       mutex_lock(&server->rcv.creq_mutex);
                        req = server->rcv.creq;
                        if (req && (req->tx_type == NCP_ALLOC_SLOT_REQUEST || (server->sequence == reply.sequence && 
                                        server->connection == get_conn_number(&reply)))) {
@@ -430,11 +430,11 @@ void ncpdgram_rcv_proc(void *s)
                                        server->rcv.creq = NULL;
                                        ncp_finish_request(req, result);
                                        __ncp_next_request(server);
-                                       up(&server->rcv.creq_sem);
+                                       mutex_unlock(&server->rcv.creq_mutex);
                                        continue;
                                }
                        }
-                       up(&server->rcv.creq_sem);
+                       mutex_unlock(&server->rcv.creq_mutex);
                }
 drop:;         
                _recv(sock, &reply, sizeof(reply), MSG_DONTWAIT);
@@ -469,12 +469,13 @@ static void __ncpdgram_timeout_proc(struct ncp_server *server)
        }
 }
 
-void ncpdgram_timeout_proc(void *s)
+void ncpdgram_timeout_proc(struct work_struct *work)
 {
-       struct ncp_server *server = s;
-       down(&server->rcv.creq_sem);
+       struct ncp_server *server =
+               container_of(work, struct ncp_server, timeout_tq);
+       mutex_lock(&server->rcv.creq_mutex);
        __ncpdgram_timeout_proc(server);
-       up(&server->rcv.creq_sem);
+       mutex_unlock(&server->rcv.creq_mutex);
 }
 
 static inline void ncp_init_req(struct ncp_request_reply* req)
@@ -653,22 +654,24 @@ skipdata:;
        }
 }
 
-void ncp_tcp_rcv_proc(void *s)
+void ncp_tcp_rcv_proc(struct work_struct *work)
 {
-       struct ncp_server *server = s;
+       struct ncp_server *server =
+               container_of(work, struct ncp_server, rcv.tq);
 
-       down(&server->rcv.creq_sem);
+       mutex_lock(&server->rcv.creq_mutex);
        __ncptcp_rcv_proc(server);
-       up(&server->rcv.creq_sem);
+       mutex_unlock(&server->rcv.creq_mutex);
 }
 
-void ncp_tcp_tx_proc(void *s)
+void ncp_tcp_tx_proc(struct work_struct *work)
 {
-       struct ncp_server *server = s;
+       struct ncp_server *server =
+               container_of(work, struct ncp_server, tx.tq);
        
-       down(&server->rcv.creq_sem);
+       mutex_lock(&server->rcv.creq_mutex);
        __ncptcp_try_send(server);
-       up(&server->rcv.creq_sem);
+       mutex_unlock(&server->rcv.creq_mutex);
 }
 
 static int do_ncp_rpc_call(struct ncp_server *server, int size,
@@ -833,7 +836,7 @@ int ncp_disconnect(struct ncp_server *server)
 
 void ncp_lock_server(struct ncp_server *server)
 {
-       down(&server->sem);
+       mutex_lock(&server->mutex);
        if (server->lock)
                printk(KERN_WARNING "ncp_lock_server: was locked!\n");
        server->lock = 1;
@@ -846,5 +849,5 @@ void ncp_unlock_server(struct ncp_server *server)
                return;
        }
        server->lock = 0;
-       up(&server->sem);
+       mutex_unlock(&server->mutex);
 }