Quoting Eric W. Biederman (ebiederm@xxxxxxxxxxxx): > > In general everything that writes to vfs inodes holds the > inode mutex, so hold the inode mutex over sysfs_refresh_inode. > The sysfs data structures don't need this but it looks like the > vfs might. > > Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxxxxxxxx> Oh right so pls disregard my last reply to patch 9 :) Acked-by: Serge Hallyn <serue@xxxxxxxxxx> > --- > fs/sysfs/inode.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c > index e2595a7..ad549f5 100644 > --- a/fs/sysfs/inode.c > +++ b/fs/sysfs/inode.c > @@ -240,9 +240,11 @@ int sysfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *sta > struct sysfs_dirent *sd = dentry->d_fsdata; > struct inode *inode = dentry->d_inode; > > + mutex_lock(&inode->i_mutex); > mutex_lock(&sysfs_mutex); > sysfs_refresh_inode(sd, inode); > mutex_unlock(&sysfs_mutex); > + mutex_unlock(&inode->i_mutex); > > generic_fillattr(inode, stat); > return 0; > @@ -353,9 +355,11 @@ int sysfs_permission(struct inode *inode, int mask) > { > struct sysfs_dirent *sd = inode->i_private; > > + mutex_lock(&inode->i_mutex); > mutex_lock(&sysfs_mutex); > sysfs_refresh_inode(sd, inode); > mutex_unlock(&sysfs_mutex); > + mutex_unlock(&inode->i_mutex); > > return generic_permission(inode, mask, NULL); > } > -- > 1.6.5.2.143.g8cc62 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html