1
0
Fork 0
alistair23-linux/fs/hpfs
Al Viro 31abdab9c1 hpfs: deadlock and race in directory lseek()
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>
2013-05-31 15:17:43 -04:00
..
Kconfig HPFS: Make HPFS compile on preempt and SMP 2011-05-09 09:04:23 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
alloc.c hpfs: bitmaps are little-endian 2012-05-29 23:28:37 -04:00
anode.c hpfs: convert to use leXX_add_cpu() 2012-10-06 03:05:08 +09:00
buffer.c HPFS: remove PRINTK() macro 2012-05-31 17:49:27 -07:00
dentry.c switch hpfs 2011-01-12 20:02:47 -05:00
dir.c hpfs: deadlock and race in directory lseek() 2013-05-31 15:17:43 -04:00
dnode.c hpfs: convert to use leXX_add_cpu() 2012-10-06 03:05:08 +09:00
ea.c hpfs: get rid of bitfields in struct fnode 2012-05-29 23:28:37 -04:00
file.c hpfs: move setting hpfs-private i_dirty to ->write_end() 2013-04-09 14:12:55 -04:00
hpfs.h hpfs: assorted endianness annotations 2012-05-29 23:28:39 -04:00
hpfs_fn.h hpfs: drop vmtruncate 2012-12-20 18:40:00 -05:00
inode.c Merge branch 'master' into for-next 2013-01-29 10:48:30 +01:00
map.c hpfs: assorted endianness annotations 2012-05-29 23:28:39 -04:00
name.c HPFS: Remove CR/LF conversion option 2011-05-09 09:04:23 -07:00
namei.c userns: Convert hpfs to use kuid and kgid where appropriate 2012-09-21 03:13:32 -07:00
super.c fs: Limit sys_mount to only request filesystem modules. (Part 3) 2013-03-11 07:09:48 -07:00