summaryrefslogtreecommitdiff
path: root/pflocal
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2013-10-18 01:16:08 +0200
committerRichard Braun <rbraun@sceen.net>2013-10-18 01:16:08 +0200
commit5ab5d98fa515cd19a64e8d5868fcbae85eec9dc5 (patch)
tree62f7b074c7f23216b049e4fa517e75591a0d6cb4 /pflocal
parent4660ac02b9723380b4581b4c6a46e54861b95059 (diff)
libdiskfs: fix removal of socket nodes
When the file system supports ifsock shortcuts, a socket node can obtain a right on a socket address. This reference is only lost if the address is destroyed, through a dead-name notification. On the other hand, pflocal keeps the address around until all references are dropped. This leads to a situation where socket nodes, addresses, and their associated sockets are leaked. To remedy the situation, make addresses get a light reference on socket nodes, and properly deallocate it when the node is destroyed, which will in turn make pflocal correctly remove the matching address and socket. * libdiskfs/ifsock.c (diskfs_S_ifsock_getsockaddr): Add a light reference instead of a hard one. * libdiskfs/node-nput.c (diskfs_nput): Deallocate right to socket address when cleaning light references.
Diffstat (limited to 'pflocal')
0 files changed, 0 insertions, 0 deletions