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

Re: [Linux-cluster] gfs1 and 2.6.20



Asbjørn Sannes wrote:
Great! I tried to figure out why the s_umount semaphore was not upped by
comparing to other filesystems, but the functions seems almost identical
.. so I cheated and looked what had changed lately (from your patch):

diff -w -u -p -p -u -r1.1.2.1.4.1.2.1 diaper.c
--- gfs-kernel/src/gfs/diaper.c	26 Jun 2006 21:53:51 -0000	1.1.2.1.4.1.2.1
+++ gfs-kernel/src/gfs/diaper.c	2 Feb 2007 22:28:41 -0000
@@ -50,7 +50,7 @@ static int diaper_major = 0;
 static LIST_HEAD(diaper_list);
 static spinlock_t diaper_lock;
 static DEFINE_IDR(diaper_idr);
-kmem_cache_t *diaper_slab;
+struct kmem_cache *diaper_slab;
/**
  * diaper_open -
@@ -232,9 +232,9 @@ get_dummy_sb(struct diaper_holder *dh)
 	struct inode *inode;
 	int error;
- mutex_lock(&real->bd_mount_mutex);
+	down(&real->bd_mount_sem);
 	sb = sget(&gfs_fs_type, gfs_test_bdev_super, gfs_set_bdev_super, real);
-	mutex_unlock(&real->bd_mount_mutex);
+	up(&real->bd_mount_sem);
 	if (IS_ERR(sb))
 		return PTR_ERR(sb);
@@ -252,7 +252,6 @@ get_dummy_sb(struct diaper_holder *dh)
 	sb->s_op = &gfs_dummy_sops;
 	sb->s_fs_info = dh;
- up_write(&sb->s_umount);
 	module_put(gfs_fs_type.owner);
dh->dh_dummy_sb = sb;
@@ -263,7 +262,6 @@ get_dummy_sb(struct diaper_holder *dh)
 	iput(inode);
fail:
-	up_write(&sb->s_umount);
 	deactivate_super(sb);
 	return error;
 }



And undid those up_write ones (added them back in), which helped, I
don't know if it safe though, and maybe you could shed some lights on
why they were removed? (I didn't find any changes that would do up_write
on s_umount later..
Actually, it didn't enjoy unmount as much ..

Mvh,
Asbjørn Sannes
Hi Asbjørn,

I took them out because I noticed the problem with umount and I knew that
the HEAD version didn't do it.  Of course, that's because it doesn't have a
diaper device whereas STABLE still does. I've just got to spend a little time
with it, that's all.  It's probably something simple.

Regards,

Bob Peterson
Red Hat Cluster Suite


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