[Linux-cluster] gfs1 and 2.6.20
Robert Peterson
rpeterso at redhat.com
Thu Feb 22 16:06:25 UTC 2007
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
More information about the Linux-cluster
mailing list