From: Alexander Viro Date: Sat, 14 Jan 2006 20:29:55 +0000 (-0500) Subject: [PATCH] Fix double decrement of mqueue_mnt->mnt_count in sys_mq_open X-Git-Tag: v2.6.16-rc1~161 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c7dce9209161eb260cdf9e9172f72c3a02379e6;p=pandora-kernel.git [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 Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed