summaryrefslogtreecommitdiff
path: root/term/devio.c
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-13 15:14:53 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-04-11 18:42:46 +0200
commite17366f09a6003dcc95633ce312aa3753f056e28 (patch)
tree42170f51b30fad175d7c1f547baaf4cca38de5ed /term/devio.c
parent4166312a45357c2ff11b00219dfb83b7475ac4b1 (diff)
fatfs: use a seperate lock to protect nodehash
Previously, fatfs used diskfs_node_refcnt_lock to serialize access to the nodehash. Use a separate lock to protect nodehash. Adjust the reference counting accordingly. Every node in the nodehash carries a light reference. When we are asked to give up that light reference, we reacquire our lock momentarily to check whether someone else reacquired a reference through the nodehash. * fatfs/inode.c (nodecache_lock): New lock. (diskfs_cached_lookup): Use a separate lock to protect nodehash. Adjust the reference counting accordingly. (ifind): Likewise. (diskfs_node_iterate): Likewise. (diskfs_node_norefs): Move the code removing the node from nodehash... (diskfs_try_dropping_softrefs): ... here, where we check whether someone reacquired a reference, and if so hold on to our light reference.
Diffstat (limited to 'term/devio.c')
0 files changed, 0 insertions, 0 deletions