Messages in this thread | | | Date | Wed, 4 Nov 2009 08:24:18 -0600 | From | "Serge E. Hallyn" <> | Subject | Re: [PATCH 09/13] sysfs: Implement sysfs_getattr & sysfs_permission |
| |
Quoting Eric W. Biederman (ebiederm@xmission.com): > "Serge E. Hallyn" <serue@us.ibm.com> writes: > > > So the inode->i_mutex is not needed? > > Good question. Nothing in sysfs needs it. The VFS does not grab the > inode mutex on this path, but the vfs does grab the inode mutex when > writing to the inode.
All callers of fs/attr.c:notify_change() do seem to take the i_mutex, though. And Documentation/filesystem/Locking claims that ->setattr() does need i_mutex. So I assume that setting of inode->i_ctime etc, which is what you're doing here, needs to be protected by the i_mutex.
> Since the VFs isn't grabbing the inode_mutex there is probably a race in > here somewhere if someone looks at things just right. > > I am too tired tonight to be that person.
The readers take no lock of any sort (i.e. generic_fillattr and its callers) so IIUC they could get inconsistent data...
-serge
| |