repositories
/
deb_libnfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add an assert to track if we try to use an rpc_context after it has been destroyed
[deb_libnfs.git]
/
lib
/
libnfs.c
diff --git
a/lib/libnfs.c
b/lib/libnfs.c
index c7c9f48285a9f64ade49f9fdd0997d7c16f810ad..e68468bf79d2bfe10e083ef237cf955f2304de3f 100644
(file)
--- a/
lib/libnfs.c
+++ b/
lib/libnfs.c
@@
-33,6
+33,7
@@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
+#include <assert.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
@@
-218,11
+219,13
@@
void free_nfs_cb_data(struct nfs_cb_data *data)
-static void nfs_mount_10_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_mount_10_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-244,6
+247,8
@@
static void nfs_mount_9_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_context *nfs = data->nfs;
FSINFO3res *res = command_data;
struct nfs_context *nfs = data->nfs;
FSINFO3res *res = command_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-270,6
+275,8
@@
static void nfs_mount_8_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-294,6
+301,8
@@
static void nfs_mount_7_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
@@
-322,6
+331,8
@@
static void nfs_mount_6_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_context *nfs = data->nfs;
mountres3 *res;
struct nfs_context *nfs = data->nfs;
mountres3 *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-367,6
+378,8
@@
static void nfs_mount_5_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-390,6
+403,8
@@
static void nfs_mount_4_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
@@
-417,6
+432,8
@@
static void nfs_mount_3_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_context *nfs = data->nfs;
uint32_t mount_port;
struct nfs_context *nfs = data->nfs;
uint32_t mount_port;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-450,6
+467,8
@@
static void nfs_mount_2_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-473,6
+492,8
@@
static void nfs_mount_1_cb(struct rpc_context *rpc, int status, void *command_da
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
@@
-537,12
+558,14
@@
int nfs_mount_async(struct nfs_context *nfs, const char *server, const char *exp
* Functions to first look up a path, component by component, and then finally call a specific function once
* the filehandle for the final component is found.
*/
* Functions to first look up a path, component by component, and then finally call a specific function once
* the filehandle for the final component is found.
*/
-static void nfs_lookup_path_1_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_lookup_path_1_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
LOOKUP3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
LOOKUP3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-656,13
+679,15
@@
static int nfs_lookuppath_async(struct nfs_context *nfs, const char *path, nfs_c
/*
* Async stat()
*/
/*
* Async stat()
*/
-static void nfs_stat_1_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_stat_1_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
GETATTR3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct stat st;
{
GETATTR3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct stat st;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-736,7
+761,7
@@
int nfs_stat_async(struct nfs_context *nfs, const char *path, nfs_cb cb, void *p
/*
* Async open()
*/
/*
* Async open()
*/
-static void nfs_open_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_open_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
ACCESS3res *res;
struct nfs_cb_data *data = private_data;
{
ACCESS3res *res;
struct nfs_cb_data *data = private_data;
@@
-744,6
+769,8
@@
static void nfs_open_cb(struct rpc_context *rpc _U_, int status, void *command_d
struct nfsfh *nfsfh;
unsigned int nfsmode = 0;
struct nfsfh *nfsfh;
unsigned int nfsmode = 0;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-849,12
+876,14
@@
int nfs_open_async(struct nfs_context *nfs, const char *path, int mode, nfs_cb c
/*
* Async pread()
*/
/*
* Async pread()
*/
-static void nfs_pread_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_pread_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
READ3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
READ3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-879,13
+908,15
@@
static void nfs_pread_cb(struct rpc_context *rpc _U_, int status, void *command_
free_nfs_cb_data(data);
}
free_nfs_cb_data(data);
}
-static void nfs_pread_mcb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_pread_mcb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_mcb_data *mdata = private_data;
struct nfs_cb_data *data = mdata->data;
struct nfs_context *nfs = data->nfs;
READ3res *res;
{
struct nfs_mcb_data *mdata = private_data;
struct nfs_cb_data *data = mdata->data;
struct nfs_context *nfs = data->nfs;
READ3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
data->num_calls--;
if (status == RPC_STATUS_ERROR) {
data->num_calls--;
if (status == RPC_STATUS_ERROR) {
@@
-1026,12
+1057,14
@@
int nfs_read_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t count,
/*
* Async pwrite()
*/
/*
* Async pwrite()
*/
-static void nfs_pwrite_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_pwrite_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
WRITE3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
WRITE3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-1056,13
+1089,15
@@
static void nfs_pwrite_cb(struct rpc_context *rpc _U_, int status, void *command
free_nfs_cb_data(data);
}
free_nfs_cb_data(data);
}
-static void nfs_pwrite_mcb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_pwrite_mcb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_mcb_data *mdata = private_data;
struct nfs_cb_data *data = mdata->data;
struct nfs_context *nfs = data->nfs;
WRITE3res *res;
{
struct nfs_mcb_data *mdata = private_data;
struct nfs_cb_data *data = mdata->data;
struct nfs_context *nfs = data->nfs;
WRITE3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
data->num_calls--;
if (status == RPC_STATUS_ERROR) {
data->num_calls--;
if (status == RPC_STATUS_ERROR) {
@@
-1244,12
+1279,14
@@
int nfs_fstat_async(struct nfs_context *nfs, struct nfsfh *nfsfh, nfs_cb cb, voi
/*
* Async fsync()
*/
/*
* Async fsync()
*/
-static void nfs_fsync_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_fsync_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
COMMIT3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
COMMIT3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-1302,12
+1339,14
@@
int nfs_fsync_async(struct nfs_context *nfs, struct nfsfh *nfsfh, nfs_cb cb, voi
/*
* Async ftruncate()
*/
/*
* Async ftruncate()
*/
-static void nfs_ftruncate_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_ftruncate_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-1403,13
+1442,15
@@
int nfs_truncate_async(struct nfs_context *nfs, const char *path, uint64_t lengt
/*
* Async mkdir()
*/
/*
* Async mkdir()
*/
-static void nfs_mkdir_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_mkdir_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
MKDIR3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
{
MKDIR3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
@@
-1492,13
+1533,15
@@
int nfs_mkdir_async(struct nfs_context *nfs, const char *path, nfs_cb cb, void *
/*
* Async rmdir()
*/
/*
* Async rmdir()
*/
-static void nfs_rmdir_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_rmdir_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
RMDIR3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
{
RMDIR3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
@@
-1572,7
+1615,7
@@
int nfs_rmdir_async(struct nfs_context *nfs, const char *path, nfs_cb cb, void *
/*
* Async creat()
*/
/*
* Async creat()
*/
-static void nfs_create_2_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_create_2_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
LOOKUP3res *res;
struct nfs_cb_data *data = private_data;
{
LOOKUP3res *res;
struct nfs_cb_data *data = private_data;
@@
-1580,6
+1623,8
@@
static void nfs_create_2_cb(struct rpc_context *rpc _U_, int status, void *comma
struct nfsfh *nfsfh;
char *str = data->continue_data;
struct nfsfh *nfsfh;
char *str = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-1620,13
+1665,15
@@
static void nfs_create_2_cb(struct rpc_context *rpc _U_, int status, void *comma
-static void nfs_creat_1_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_creat_1_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
CREATE3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
{
CREATE3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-1714,13
+1761,15
@@
int nfs_creat_async(struct nfs_context *nfs, const char *path, int mode, nfs_cb
/*
* Async unlink()
*/
/*
* Async unlink()
*/
-static void nfs_unlink_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_unlink_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
REMOVE3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
{
REMOVE3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
@@
-1807,13
+1856,15
@@
static void free_mknod_cb_data(void *ptr)
free(data);
}
free(data);
}
-static void nfs_mknod_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_mknod_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
MKNOD3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
{
MKNOD3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
char *str = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
str = &str[strlen(str) + 1];
if (status == RPC_STATUS_ERROR) {
@@
-1911,7
+1962,7
@@
struct rdpe_lookup_cb_data {
};
/* Workaround for servers lacking READDIRPLUS, use READDIR instead and a GETATTR-loop */
};
/* Workaround for servers lacking READDIRPLUS, use READDIR instead and a GETATTR-loop */
-static void nfs_opendir3_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_opendir3_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
LOOKUP3res *res = command_data;
struct rdpe_lookup_cb_data *rdpe_lookup_cb_data = private_data;
{
LOOKUP3res *res = command_data;
struct rdpe_lookup_cb_data *rdpe_lookup_cb_data = private_data;
@@
-1921,6
+1972,8
@@
static void nfs_opendir3_cb(struct rpc_context *rpc _U_, int status, void *comma
struct nfs_context *nfs = data->nfs;
struct nfsdirent *nfsdirent = rdpe_lookup_cb_data->nfsdirent;
struct nfs_context *nfs = data->nfs;
struct nfsdirent *nfsdirent = rdpe_lookup_cb_data->nfsdirent;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
free(rdpe_lookup_cb_data);
rdpe_cb_data->getattrcount--;
free(rdpe_lookup_cb_data);
rdpe_cb_data->getattrcount--;
@@
-1965,7
+2018,7
@@
static void nfs_opendir3_cb(struct rpc_context *rpc _U_, int status, void *comma
}
}
}
}
-static void nfs_opendir2_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_opendir2_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
READDIR3res *res = command_data;
struct nfs_cb_data *data = private_data;
{
READDIR3res *res = command_data;
struct nfs_cb_data *data = private_data;
@@
-1976,6
+2029,8
@@
static void nfs_opendir2_cb(struct rpc_context *rpc _U_, int status, void *comma
uint64_t cookie;
struct rdpe_cb_data *rdpe_cb_data;
uint64_t cookie;
struct rdpe_cb_data *rdpe_cb_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
nfs_free_nfsdir(nfsdir);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
nfs_free_nfsdir(nfsdir);
@@
-2080,7
+2135,7
@@
static void nfs_opendir2_cb(struct rpc_context *rpc _U_, int status, void *comma
}
}
-static void nfs_opendir_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_opendir_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
READDIRPLUS3res *res = command_data;
struct nfs_cb_data *data = private_data;
{
READDIRPLUS3res *res = command_data;
struct nfs_cb_data *data = private_data;
@@
-2089,6
+2144,7
@@
static void nfs_opendir_cb(struct rpc_context *rpc _U_, int status, void *comman
struct entryplus3 *entry;
uint64_t cookie;
struct entryplus3 *entry;
uint64_t cookie;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
if (status == RPC_STATUS_ERROR || (status == RPC_STATUS_SUCCESS && res->status == NFS3ERR_NOTSUPP) ){
cookieverf3 cv;
if (status == RPC_STATUS_ERROR || (status == RPC_STATUS_SUCCESS && res->status == NFS3ERR_NOTSUPP) ){
cookieverf3 cv;
@@
-2250,12
+2306,14
@@
struct lseek_cb_data {
void *private_data;
};
void *private_data;
};
-static void nfs_lseek_1_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_lseek_1_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
GETATTR3res *res;
struct lseek_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
{
GETATTR3res *res;
struct lseek_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free(data);
@@
-2321,13
+2379,15
@@
int nfs_lseek_async(struct nfs_context *nfs, struct nfsfh *nfsfh, uint64_t offse
/*
* Async statvfs()
*/
/*
* Async statvfs()
*/
-static void nfs_statvfs_1_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_statvfs_1_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
FSSTAT3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct statvfs svfs;
{
FSSTAT3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct statvfs svfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-2390,12
+2450,14
@@
int nfs_statvfs_async(struct nfs_context *nfs, const char *path, nfs_cb cb, void
/*
* Async readlink()
*/
/*
* Async readlink()
*/
-static void nfs_readlink_1_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_readlink_1_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
READLINK3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
{
READLINK3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-2452,12
+2514,14
@@
int nfs_readlink_async(struct nfs_context *nfs, const char *path, nfs_cb cb, voi
/*
* Async chmod()
*/
/*
* Async chmod()
*/
-static void nfs_chmod_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_chmod_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-2550,12
+2614,14
@@
int nfs_fchmod_async(struct nfs_context *nfs, struct nfsfh *nfsfh, int mode, nfs
/*
* Async chown()
*/
/*
* Async chown()
*/
-static void nfs_chown_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_chown_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-2686,12
+2752,14
@@
int nfs_fchown_async(struct nfs_context *nfs, struct nfsfh *nfsfh, int uid, int
/*
* Async utimes()
*/
/*
* Async utimes()
*/
-static void nfs_utimes_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_utimes_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
{
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
SETATTR3res *res;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-2802,13
+2870,15
@@
int nfs_utime_async(struct nfs_context *nfs, const char *path, struct utimbuf *t
/*
* Async access()
*/
/*
* Async access()
*/
-static void nfs_access_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_access_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
ACCESS3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
unsigned int nfsmode = 0;
{
ACCESS3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
unsigned int nfsmode = 0;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-2915,13
+2985,15
@@
static void free_nfs_symlink_data(void *mem)
free(data);
}
free(data);
}
-static void nfs_symlink_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_symlink_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
SYMLINK3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_symlink_data *symlink_data = data->continue_data;
{
SYMLINK3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_symlink_data *symlink_data = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-3050,13
+3122,15
@@
static void free_nfs_rename_data(void *mem)
free(data);
}
free(data);
}
-static void nfs_rename_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_rename_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
RENAME3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_rename_data *rename_data = data->continue_data;
{
RENAME3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_rename_data *rename_data = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-3206,13
+3280,15
@@
static void free_nfs_link_data(void *mem)
free(data);
}
free(data);
}
-static void nfs_link_cb(struct rpc_context *rpc
_U_
, int status, void *command_data, void *private_data)
+static void nfs_link_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
LINK3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_link_data *link_data = data->continue_data;
{
LINK3res *res;
struct nfs_cb_data *data = private_data;
struct nfs_context *nfs = data->nfs;
struct nfs_link_data *link_data = data->continue_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(-EFAULT, nfs, command_data, data->private_data);
free_nfs_cb_data(data);
@@
-3387,7
+3463,9
@@
static void mount_export_5_cb(struct rpc_context *rpc, int status, void *command
{
struct mount_cb_data *data = private_data;
{
struct mount_cb_data *data = private_data;
- if (status == RPC_STATUS_ERROR) {
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
+ if (status == RPC_STATUS_ERROR) {
data->cb(rpc, -EFAULT, command_data, data->private_data);
free_mount_cb_data(data);
return;
data->cb(rpc, -EFAULT, command_data, data->private_data);
free_mount_cb_data(data);
return;
@@
-3409,6
+3487,8
@@
static void mount_export_4_cb(struct rpc_context *rpc, int status, void *command
{
struct mount_cb_data *data = private_data;
{
struct mount_cb_data *data = private_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
@@
-3435,7
+3515,9
@@
static void mount_export_3_cb(struct rpc_context *rpc, int status, void *command
struct mount_cb_data *data = private_data;
uint32_t mount_port;
struct mount_cb_data *data = private_data;
uint32_t mount_port;
- if (status == RPC_STATUS_ERROR) {
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
+ if (status == RPC_STATUS_ERROR) {
data->cb(rpc, -EFAULT, command_data, data->private_data);
free_mount_cb_data(data);
return;
data->cb(rpc, -EFAULT, command_data, data->private_data);
free_mount_cb_data(data);
return;
@@
-3466,6
+3548,8
@@
static void mount_export_2_cb(struct rpc_context *rpc, int status, void *command
{
struct mount_cb_data *data = private_data;
{
struct mount_cb_data *data = private_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_ERROR) {
data->cb(rpc, -EFAULT, command_data, data->private_data);
free_mount_cb_data(data);
if (status == RPC_STATUS_ERROR) {
data->cb(rpc, -EFAULT, command_data, data->private_data);
free_mount_cb_data(data);
@@
-3488,6
+3572,8
@@
static void mount_export_1_cb(struct rpc_context *rpc, int status, void *command
{
struct mount_cb_data *data = private_data;
{
struct mount_cb_data *data = private_data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
/* Dont want any more callbacks even if the socket is closed */
rpc->connect_cb = NULL;
@@
-3513,6
+3599,8
@@
int mount_getexports_async(struct rpc_context *rpc, const char *server, rpc_cb c
{
struct mount_cb_data *data;
{
struct mount_cb_data *data;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
data = malloc(sizeof(struct mount_cb_data));
if (data == NULL) {
return -1;
data = malloc(sizeof(struct mount_cb_data));
if (data == NULL) {
return -1;
@@
-3535,6
+3623,7
@@
int mount_getexports_async(struct rpc_context *rpc, const char *server, rpc_cb c
struct rpc_context *nfs_get_rpc_context(struct nfs_context *nfs)
{
struct rpc_context *nfs_get_rpc_context(struct nfs_context *nfs)
{
+ assert(nfs->rpc->magic == RPC_CONTEXT_MAGIC);
return nfs->rpc;
}
return nfs->rpc;
}