summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-05-18 02:38:52 -0400
committerBen Hutchings <ben@decadent.org.uk>2014-04-02 00:59:00 +0100
commitb89ff066efab68d53a3a060b2c7d9089f8afa8ea (patch)
tree6fd67b004c4a6b3b215dd9212825b15b858d11da /kernel
parent578d1903dcfd8911534aa602ea8c104c383fadda (diff)
hpfs: deadlock and race in directory lseek()
commit 31abdab9c11bb1694ecd1476a7edbe8e964d94ac upstream. For one thing, there's an ABBA deadlock on hpfs fs-wide lock and i_mutex in hpfs_dir_lseek() - there's a lot of methods that grab the former with the caller already holding the latter, so it must take i_mutex first. For another, locking the damn thing, carefully validating the offset, then dropping locks and assigning the offset is obviously racy. Moreover, we _must_ do hpfs_add_pos(), or the machinery in dnode.c won't modify the sucker on B-tree surgeries. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions