Re: 2.6.17-rc5-mm2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 01 Jun 2006 19:20:08 +0200
Arjan van de Ven <[email protected]> wrote:

> On Thu, 2006-06-01 at 17:51 +0200, Michal Piotrowski wrote:
> > Hi,
> > 
> > On 01/06/06, Andrew Morton <[email protected]> wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc5/2.6.17-rc5-mm2/
> > >
> > 
> > I don't know why, but first bug appears only when avahi-daemon is
> > started. Second look like a problem with my camera.
> > http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm2/bug_1.jpg
> > http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm2/bug_2.jpg
> > 
> > Here is config http://www.stardust.webpages.pl/files/mm/2.6.17-rc5-mm2/mm-config
> 
> 
> can you confirm this fixes it ?
> 

s/fixes it/makes it go away/

Please describe these patches better.

Where was the outermost lock taken?  How do we know that an attempt cannot
be made to take them in the opposite order?


> ---
>  drivers/usb/core/inode.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> Index: linux-2.6.17-rc5-mm1.5/drivers/usb/core/inode.c
> ===================================================================
> --- linux-2.6.17-rc5-mm1.5.orig/drivers/usb/core/inode.c
> +++ linux-2.6.17-rc5-mm1.5/drivers/usb/core/inode.c
> @@ -333,7 +333,7 @@ static int usbfs_empty (struct dentry *d
>  static int usbfs_unlink (struct inode *dir, struct dentry *dentry)
>  {
>  	struct inode *inode = dentry->d_inode;
> -	mutex_lock(&inode->i_mutex);
> +	mutex_lock_nested(&inode->i_mutex, I_MUTEX_CHILD);
>  	dentry->d_inode->i_nlink--;
>  	dput(dentry);
>  	mutex_unlock(&inode->i_mutex);
> @@ -346,7 +346,7 @@ static int usbfs_rmdir(struct inode *dir
>  	int error = -ENOTEMPTY;
>  	struct inode * inode = dentry->d_inode;
>  
> -	mutex_lock(&inode->i_mutex);
> +	mutex_lock_nested(&inode->i_mutex, I_MUTEX_CHILD);
>  	dentry_unhash(dentry);
>  	if (usbfs_empty(dentry)) {
>  		dentry->d_inode->i_nlink -= 2;
> @@ -528,7 +528,7 @@ static void fs_remove_file (struct dentr
>  	if (!parent || !parent->d_inode)
>  		return;
>  
> -	mutex_lock(&parent->d_inode->i_mutex);
> +	mutex_lock_nested(&parent->d_inode->i_mutex, I_MUTEX_PARENT);
>  	if (usbfs_positive(dentry)) {
>  		if (dentry->d_inode) {
>  			if (S_ISDIR(dentry->d_inode->i_mode))
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux