Merge pull request #82 from plieven/readahead
[deb_libnfs.git] / lib / init.c
index d65520354f80ea2457c6bf633a85b4bfe9ee18db..d41c4f8186acdc02261a473ae53c9b8c0288918d 100644 (file)
@@ -1,7 +1,10 @@
 /*
    Copyright (C) 2010 by Ronnie Sahlberg <ronniesahlberg@gmail.com>
 
-
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -91,6 +94,12 @@ struct rpc_context *rpc_init_context(void)
        return rpc;
 }
 
+void rpc_set_readahead(struct rpc_context *rpc, uint32_t v)
+{
+       assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
+       rpc->readahead = v;
+}
 
 struct rpc_context *rpc_init_udp_context(void)
 {
@@ -222,7 +231,7 @@ int rpc_add_fragment(struct rpc_context *rpc, char *data, uint64_t size)
        }
 
        memcpy(fragment->data, data, fragment->size);
-       SLIST_ADD_END(&rpc->fragments, fragment);
+       LIBNFS_LIST_ADD_END(&rpc->fragments, fragment);
        return 0;
 }
 
@@ -235,7 +244,7 @@ void rpc_destroy_context(struct rpc_context *rpc)
 
        while((pdu = rpc->outqueue.head) != NULL) {
                pdu->cb(rpc, RPC_STATUS_CANCEL, NULL, pdu->private_data);
-               rpc->outqueue.head = pdu->next;
+               LIBNFS_LIST_REMOVE(&rpc->outqueue.head, pdu);
                rpc_free_pdu(rpc, pdu);
        }
 
@@ -244,7 +253,7 @@ void rpc_destroy_context(struct rpc_context *rpc)
 
                while((pdu = q->head) != NULL) {
                        pdu->cb(rpc, RPC_STATUS_CANCEL, NULL, pdu->private_data);
-                       rpc->outqueue.head = pdu->next;
+                       LIBNFS_LIST_REMOVE(&q->head, pdu);
                        rpc_free_pdu(rpc, pdu);
                }
        }