[Cluster-devel] [PATCH] Fix freeze of cluster-2.03.11
Kadlecsik Jozsef
kadlec at mail.kfki.hu
Wed Apr 22 11:55:26 UTC 2009
On Tue, 21 Apr 2009, Steven Whitehouse wrote:
> Yes, it doesn't surprise me that you'd see lockups without your patch.
> To be on the safe side, try moving the call to gfs_sync_page_i into
> ->delete_inode so that you can do it after the inode lock has already
> been dropped (and after the state has been set correctly too). It won't
> harm anything to have that around, but it might slow things down a bit,
What do you think about this patch?
--- gfs-orig/ops_super.c 2009-01-22 13:33:51.000000000 +0100
+++ gfs/ops_super.c 2009-04-22 13:51:06.000000000 +0200
@@ -49,7 +49,7 @@
}
/**
- * gfs_drop_inode - drop an inode
+ * gfs_delete_inode - delete an inode
* @inode: The inode
*
* If i_nlink is zero, any dirty data for the inode is thrown away.
@@ -58,19 +58,19 @@
*/
static void
-gfs_drop_inode(struct inode *inode)
+gfs_delete_inode(struct inode *inode)
{
struct gfs_sbd *sdp = get_v2sdp(inode->i_sb);
struct gfs_inode *ip = get_v2ip(inode);
- atomic_inc(&sdp->sd_ops_super);
-
if (ip &&
!inode->i_nlink &&
S_ISREG(inode->i_mode) &&
!sdp->sd_args.ar_localcaching)
gfs_sync_page_i(inode, DIO_START | DIO_WAIT);
- generic_drop_inode(inode);
+
+ truncate_inode_pages(&inode->i_data, 0);
+ clear_inode(inode);
}
/**
@@ -443,7 +443,7 @@
struct super_operations gfs_super_ops = {
.write_inode = gfs_write_inode,
- .drop_inode = gfs_drop_inode,
+ .delete_inode = gfs_delete_inode,
.put_super = gfs_put_super,
.write_super = gfs_write_super,
.write_super_lockfs = gfs_write_super_lockfs,
I'll be able to test it (or it's successor) around the next week.
Best regards,
Jozsef
--
E-mail : kadlec at mail.kfki.hu, kadlec at blackhole.kfki.hu
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
More information about the Cluster-devel
mailing list