summaryrefslogtreecommitdiffstats
path: root/net/rds/xlist.h
diff options
context:
space:
mode:
authorJoel Becker <jlbec@evilplan.org>2011-05-18 13:08:16 +0200
committerJoel Becker <jlbec@evilplan.org>2011-05-18 13:08:16 +0200
commit24307aa1e707b31613be92deaba7990e16bc1aec (patch)
tree6699c969a7f56c2b7949bf16af54320caee0687e /net/rds/xlist.h
parentconfigfs: Don't try to d_delete() negative dentries. (diff)
downloadlinux-24307aa1e707b31613be92deaba7990e16bc1aec.tar.xz
linux-24307aa1e707b31613be92deaba7990e16bc1aec.zip
configfs: Fix race between configfs_readdir() and configfs_d_iput()
configfs_readdir() will use the existing inode numbers of inodes in the dcache, but it makes them up for attribute files that aren't currently instantiated. There is a race where a closing attribute file can be tearing down at the same time as configfs_readdir() is trying to get its inode number. We want to get the inode number of open attribute files, because they should match while instantiated. We can't lock down the transition where dentry->d_inode is set to NULL, so we just check for NULL there. We can, however, ensure that an inode we find isn't iput() in configfs_d_iput() until after we've accessed it. Signed-off-by: Joel Becker <jlbec@evilplan.org>
Diffstat (limited to 'net/rds/xlist.h')
0 files changed, 0 insertions, 0 deletions