Re: [patch 37/61] lock validator: special locking: dcache

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

 



On Mon, 2006-05-29 at 18:35 -0700, Andrew Morton wrote:

> > Index: linux/fs/dcache.c
> > ===================================================================
> > --- linux.orig/fs/dcache.c
> > +++ linux/fs/dcache.c
> > @@ -1380,10 +1380,10 @@ void d_move(struct dentry * dentry, stru
> >  	 */
> >  	if (target < dentry) {
> >  		spin_lock(&target->d_lock);
> > -		spin_lock(&dentry->d_lock);
> > +		spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
> >  	} else {
> >  		spin_lock(&dentry->d_lock);
> > -		spin_lock(&target->d_lock);
> > +		spin_lock_nested(&target->d_lock, DENTRY_D_LOCK_NESTED);
> >  	}
> > 
>  

[...]

> > +/*
> > + * dentry->d_lock spinlock nesting types:
> > + *
> > + * 0: normal
> > + * 1: nested
> > + */
> > +enum dentry_d_lock_type
> > +{
> > +	DENTRY_D_LOCK_NORMAL,
> > +	DENTRY_D_LOCK_NESTED
> > +};
> > +
> >  struct dentry_operations {
> >  	int (*d_revalidate)(struct dentry *, struct nameidata *);
> >  	int (*d_hash) (struct dentry *, struct qstr *);
> 
> DENTRY_D_LOCK_NORMAL isn't used anywhere.
> 

I guess it is implied with the normal spin_lock.  Since 
  spin_lock(&target->d_lock) and
  spin_lock_nested(&target->d_lock, DENTRY_D_LOCK_NORMAL)
are equivalent. (DENTRY_D_LOCK_NORMAL == 0)

Probably this deserves a comment.

-- Steve


-
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