1
linux/ipc
Alexander Viro 7c7dce9209 [PATCH] Fix double decrement of mqueue_mnt->mnt_count in sys_mq_open
Fixed the refcounting on failure exits in sys_mq_open() and
cleaned the logics up.  Rules are actually pretty simple - dentry_open()
expects vfsmount and dentry to be pinned down and it either transfers
them into created struct file or drops them.  Old code had been very
confused in that area - if dentry_open() had failed either in do_open()
or do_create(), we ended up dentry and mqueue_mnt dropped twice, once
by dentry_open() cleanup and then by sys_mq_open().

Fix consists of making the rules for do_create() and do_open()
same as for dentry_open() and updating the sys_mq_open() accordingly;
that actually leads to more straightforward code and less work on
normal path.

Signed-off-by: Al Viro <aviro@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-14 12:38:17 -08:00
..
compat_mq.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat.c [PATCH] compat: be more consistent about [ug]id_t 2005-09-07 16:57:19 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mqueue.c [PATCH] Fix double decrement of mqueue_mnt->mnt_count in sys_mq_open 2006-01-14 12:38:17 -08:00
msg.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
msgutil.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sem.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
shm.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
util.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
util.h [PATCH] ipc: add generic struct ipc_ids seq_file iteration 2005-09-07 16:57:25 -07:00