Re: Freeze with cluster-2.03.11

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

 



On Thu, 2 Apr 2009, Wendy Cheng wrote:

> > > Kadlecsik Jozsef wrote:
> > >     
> > > > - commit 82d176ba485f2ef049fd303b9e41868667cebbdb
> > > >   gfs_drop_inode as .drop_inode replacing .put_inode.
> > > >   .put_inode was called without holding a lock, but .drop_inode
> > > >   is called under inode_lock held. Might it be a problem
> > > >       
> Based on code reading ...
> 1. iput() gets inode_lock (a spin lock)
> 2. iput() calls iput_final()
> 3. iput_final() calls filesystem drop_inode(), followed by
> generic_drop_inode()
> 4. generic_drop_inode() unlock inode_lock after doing all sorts of fun things
> with the inode
> 
> So look to me that generic_drop_inode() statement within 
> gfs_drop_inode() should be removed. Otherwise you would get double 
> unlock and double list free.

I think those function calls are right: iput_final calls either the 
filesystem drop_inode function (in this case gfs_drop_inode) or 
generic_drop_inode. There's no double call of generic_drop_inode. However 
gfs_sync_page_i (and in turn filemap_fdatawrite and filemap_fdatawait) is 
now called under inode_lock held and that was not so in previous versions.
But I'm just speculating.
 
> In short, *remove* line #73 from gfs-kernel/src/gfs/ops_super.c in your 
> source and let us know how it goes.

I won't get a chance to start a test before Monday, sorry. 

Best regards,
Jozsef
--
E-mail : kadlec@xxxxxxxxxxxx, kadlec@xxxxxxxxxxxxxxxxx
PGP key: http://www.kfki.hu/~kadlec/pgp_public_key.txt
Address: KFKI Research Institute for Particle and Nuclear Physics
         H-1525 Budapest 114, POB. 49, Hungary

--
Linux-cluster mailing list
Linux-cluster@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/linux-cluster

[Index of Archives]     [Corosync Cluster Engine]     [GFS]     [Linux Virtualization]     [Centos Virtualization]     [Centos]     [Linux RAID]     [Fedora Users]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Camping]

  Powered by Linux