View | Details | Raw Unified
Collapse All | Expand All

(-) cluster-1.04.00/gfs-kernel/src/gfs/ops_fstype.c (-16 / +2 lines)
 Lines 397-403    Link Here 
 fail_bdput:
 fail_bdput:
	mutex_lock(&diaper->bd_mutex);
	mutex_lock(&diaper->bd_mutex);
	if (!--diaper->bd_openers) {
	if (!--diaper->bd_openers) {
		invalidate_bdev(diaper, 1);
		invalidate_bdev(diaper);
		diaper->bd_contains = NULL;
		diaper->bd_contains = NULL;
		diaper->bd_disk = NULL;
		diaper->bd_disk = NULL;
	} else
	} else
 Lines 440-446    Link Here 
	mutex_lock(&diaper->bd_mutex);
	mutex_lock(&diaper->bd_mutex);
	if (!--diaper->bd_openers) {
	if (!--diaper->bd_openers) {
		invalidate_bdev(diaper, 1);
		invalidate_bdev(diaper);
		diaper->bd_contains = NULL;
		diaper->bd_contains = NULL;
		diaper->bd_disk = NULL;
		diaper->bd_disk = NULL;
	} else
	} else
 Lines 726-738    Link Here 
			goto error;
			goto error;
		}
		}
		sb->s_flags |= MS_ACTIVE;
		sb->s_flags |= MS_ACTIVE;
		/* Equivilant of bdev_uevent(bdev, KOBJ_MOUNT): */
		if (real->bd_disk) {
			if (real->bd_part)
				kobject_uevent(&real->bd_part->kobj, KOBJ_MOUNT);
			else
				kobject_uevent(&real->bd_disk->kobj, KOBJ_MOUNT);
		}
	}
	}
	return simple_set_mnt(mnt, sb);
	return simple_set_mnt(mnt, sb);
 Lines 761-773    Link Here 
	struct block_device *real = gfs_diaper_2real(diaper);
	struct block_device *real = gfs_diaper_2real(diaper);
	unsigned long bsize = block_size(real);
	unsigned long bsize = block_size(real);
	/* Equivalent of bdev_uevent(bdev, KOBJ_UMOUNT); */
	if (real->bd_disk) {
		if (real->bd_part)
			kobject_uevent(&real->bd_part->kobj, KOBJ_UMOUNT);
		else
			kobject_uevent(&real->bd_disk->kobj, KOBJ_UMOUNT);
	}
	generic_shutdown_super(sb);
	generic_shutdown_super(sb);
	set_blocksize(diaper, bsize);
	set_blocksize(diaper, bsize);
	set_blocksize(real, bsize);
	set_blocksize(real, bsize);