[PATCH] sysfs: reinstate exclusion between method calls and attribute unregistration
authorAlan Stern <stern@rowland.harvard.edu>
Thu, 15 Mar 2007 19:51:28 +0000 (15:51 -0400)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 15 Mar 2007 22:29:26 +0000 (15:29 -0700)
commite7b0d26a86943370c04d6833c6edba2a72a6e240
tree696e696176a1e72abb80afa6112fc057b39bf86b
parentd9a9cdfb078d755e648d53ec25b7370f84ee5729
[PATCH] sysfs: reinstate exclusion between method calls and attribute unregistration

This patch (as869) reinstates the mutual exclusion between sysfs
attribute method calls and attribute unregistration.  The
previously-reported deadlocks have been fixed, and this exclusion is
by far the simplest way to avoid races during driver unbinding.

The check for orphaned read-buffers has been moved down slightly, so
that the remainder of a partially-read buffer will still be available
to userspace even after the attribute has been unregistered.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/sysfs/file.c
fs/sysfs/inode.c