Files
twx-linux/fs
Jeff Mahoney 1b3bac165e reiserfs: fix xattr root locking/refcount bug
The listxattr() and getxattr() operations are only protected by a read
lock.  As a result, if either of these operations run in parallel, a race
condition exists where the xattr_root will end up being cached twice, which
results in the leaking of a reference and a BUG() on umount.

This patch refactors get_xa_root(), __get_xa_root(), and create_xa_root(),
into one get_xa_root() function that takes the appropriate locking around
the entire critical section.

Reported, diagnosed and tested by Andrea Righi <a.righi@cineca.it>

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Cc: Andrea Righi <a.righi@cineca.it>
Cc: "Vladimir V. Saveliev" <vs@namesys.com>
Cc: Edward Shishkin <edward@namesys.com>
Cc: Alex Zarochentsev <zam@namesys.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-05-01 17:06:02 -07:00
..
2007-03-09 10:50:29 -08:00
2007-01-05 23:55:22 -08:00
2006-12-08 08:28:44 -08:00
2006-12-15 12:51:22 -05:00
2006-12-08 08:28:45 -08:00
2007-03-09 10:50:32 -08:00
2006-12-08 08:28:45 -08:00
2007-01-30 08:26:44 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:45 -08:00
2006-12-08 08:28:47 -08:00
2006-11-16 11:43:38 -08:00
2007-05-01 17:05:59 -07:00
2006-12-08 08:28:48 -08:00
2006-12-08 08:28:49 -08:00
2006-12-08 08:28:50 -08:00
2007-03-09 10:50:29 -08:00
2006-11-16 11:43:38 -08:00
2007-04-13 13:47:18 -07:00
2007-03-09 10:50:30 -08:00
2006-12-07 08:39:25 -08:00
2006-12-13 09:05:50 -08:00
2006-12-07 08:39:25 -08:00
2006-12-13 09:05:50 -08:00
2006-12-13 09:05:47 -08:00
2006-12-22 08:55:48 -08:00