Unverified Commit 982c3b30 authored by Christian Brauner's avatar Christian Brauner
Browse files

bdev: rename freeze and thaw helpers

We have bdev_mark_dead() etc and we're going to move block device
freezing to holder ops in the next patch. Make the naming consistent:

* freeze_bdev() -> bdev_freeze()
* thaw_bdev()   -> bdev_thaw()

Also document the return code.

Link: https://lore.kernel.org/r/20231024-vfs-super-freeze-v2-2-599c19f4faac@kernel.org


Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent f0cd9880
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -207,18 +207,20 @@ int sync_blockdev_range(struct block_device *bdev, loff_t lstart, loff_t lend)
EXPORT_SYMBOL(sync_blockdev_range);

/**
 * freeze_bdev - lock a filesystem and force it into a consistent state
 * bdev_freeze - lock a filesystem and force it into a consistent state
 * @bdev:	blockdevice to lock
 *
 * If a superblock is found on this device, we take the s_umount semaphore
 * on it to make sure nobody unmounts until the snapshot creation is done.
 * The reference counter (bd_fsfreeze_count) guarantees that only the last
 * unfreeze process can unfreeze the frozen filesystem actually when multiple
 * freeze requests arrive simultaneously. It counts up in freeze_bdev() and
 * count down in thaw_bdev(). When it becomes 0, thaw_bdev() will unfreeze
 * freeze requests arrive simultaneously. It counts up in bdev_freeze() and
 * count down in bdev_thaw(). When it becomes 0, thaw_bdev() will unfreeze
 * actually.
 *
 * Return: On success zero is returned, negative error code on failure.
 */
int freeze_bdev(struct block_device *bdev)
int bdev_freeze(struct block_device *bdev)
{
	struct super_block *sb;
	int error = 0;
@@ -248,15 +250,17 @@ int freeze_bdev(struct block_device *bdev)
	mutex_unlock(&bdev->bd_fsfreeze_mutex);
	return error;
}
EXPORT_SYMBOL(freeze_bdev);
EXPORT_SYMBOL(bdev_freeze);

/**
 * thaw_bdev - unlock filesystem
 * bdev_thaw - unlock filesystem
 * @bdev:	blockdevice to unlock
 *
 * Unlocks the filesystem and marks it writeable again after freeze_bdev().
 * Unlocks the filesystem and marks it writeable again after bdev_freeze().
 *
 * Return: On success zero is returned, negative error code on failure.
 */
int thaw_bdev(struct block_device *bdev)
int bdev_thaw(struct block_device *bdev)
{
	struct super_block *sb;
	int error = -EINVAL;
@@ -285,7 +289,7 @@ int thaw_bdev(struct block_device *bdev)
	mutex_unlock(&bdev->bd_fsfreeze_mutex);
	return error;
}
EXPORT_SYMBOL(thaw_bdev);
EXPORT_SYMBOL(bdev_thaw);

/*
 * pseudo-fs
+2 −2
Original line number Diff line number Diff line
@@ -2675,7 +2675,7 @@ static int lock_fs(struct mapped_device *md)

	WARN_ON(test_bit(DMF_FROZEN, &md->flags));

	r = freeze_bdev(md->disk->part0);
	r = bdev_freeze(md->disk->part0);
	if (!r)
		set_bit(DMF_FROZEN, &md->flags);
	return r;
@@ -2685,7 +2685,7 @@ static void unlock_fs(struct mapped_device *md)
{
	if (!test_bit(DMF_FROZEN, &md->flags))
		return;
	thaw_bdev(md->disk->part0);
	bdev_thaw(md->disk->part0);
	clear_bit(DMF_FROZEN, &md->flags);
}

+2 −2
Original line number Diff line number Diff line
@@ -291,14 +291,14 @@ static int bch2_ioc_goingdown(struct bch_fs *c, u32 __user *arg)

	switch (flags) {
	case FSOP_GOING_FLAGS_DEFAULT:
		ret = freeze_bdev(c->vfs_sb->s_bdev);
		ret = bdev_freeze(c->vfs_sb->s_bdev);
		if (ret)
			goto err;

		bch2_journal_flush(&c->journal);
		c->vfs_sb->s_flags |= SB_RDONLY;
		bch2_fs_emergency_read_only(c);
		thaw_bdev(c->vfs_sb->s_bdev);
		bdev_thaw(c->vfs_sb->s_bdev);
		break;

	case FSOP_GOING_FLAGS_LOGFLUSH:
+2 −2
Original line number Diff line number Diff line
@@ -819,11 +819,11 @@ int ext4_force_shutdown(struct super_block *sb, u32 flags)

	switch (flags) {
	case EXT4_GOING_FLAGS_DEFAULT:
		ret = freeze_bdev(sb->s_bdev);
		ret = bdev_freeze(sb->s_bdev);
		if (ret)
			return ret;
		set_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags);
		thaw_bdev(sb->s_bdev);
		bdev_thaw(sb->s_bdev);
		break;
	case EXT4_GOING_FLAGS_LOGFLUSH:
		set_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags);
+2 −2
Original line number Diff line number Diff line
@@ -2239,11 +2239,11 @@ static int f2fs_ioc_shutdown(struct file *filp, unsigned long arg)

	switch (in) {
	case F2FS_GOING_DOWN_FULLSYNC:
		ret = freeze_bdev(sb->s_bdev);
		ret = bdev_freeze(sb->s_bdev);
		if (ret)
			goto out;
		f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_SHUTDOWN);
		thaw_bdev(sb->s_bdev);
		bdev_thaw(sb->s_bdev);
		break;
	case F2FS_GOING_DOWN_METASYNC:
		/* do checkpoint only */
Loading