diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-03-17 15:05:40 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-03-17 15:05:40 +0000 |
commit | 6f385414b27e929bd14435ea8342cde4bae0ef8d (patch) | |
tree | c5a557fa053ebd9d96331f9d620d96a80a1282bd /lib/fuse_session.c | |
parent | 9db31dc1cff5ae2e854649f039f319d45eb58cf3 (diff) | |
download | libfuse-6f385414b27e929bd14435ea8342cde4bae0ef8d.tar.gz |
fix
Diffstat (limited to 'lib/fuse_session.c')
-rw-r--r-- | lib/fuse_session.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/fuse_session.c b/lib/fuse_session.c index 8943204..040645b 100644 --- a/lib/fuse_session.c +++ b/lib/fuse_session.c @@ -59,6 +59,16 @@ void fuse_session_add_chan(struct fuse_session *se, struct fuse_chan *ch) ch->se = se; } +void fuse_session_remove_chan(struct fuse_chan *ch) +{ + struct fuse_session *se = ch->se; + if (se) { + assert(se->ch == ch); + se->ch = NULL; + ch->se = NULL; + } +} + struct fuse_chan *fuse_session_next_chan(struct fuse_session *se, struct fuse_chan *ch) { @@ -162,6 +172,7 @@ int fuse_chan_send(struct fuse_chan *ch, const struct iovec iov[], size_t count) void fuse_chan_destroy(struct fuse_chan *ch) { + fuse_session_remove_chan(ch); if (ch->op.destroy) ch->op.destroy(ch); free(ch); |