Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b5ce8ae authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Christoph Hellwig
Browse files

hfsplus: always use hfsplus_sync_fs to write the volume header



Remove opencoded writing of the volume header in hfsplus_fill_super
and hfsplus_put_super and offload it to hfsplus_sync_fs.  In the
put_super case this means we only write the superblock once instead
of twice.

Signed-off-by: default avatarChristoph Hellwig <hch@tuxera.com>
parent 6d1bbfc4
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -215,16 +215,14 @@ static void hfsplus_put_super(struct super_block *sb)
	if (!sb->s_fs_info)
		return;

	if (sb->s_dirt)
		hfsplus_write_super(sb);
	if (!(sb->s_flags & MS_RDONLY) && sbi->s_vhdr) {
		struct hfsplus_vh *vhdr = sbi->s_vhdr;

		vhdr->modify_date = hfsp_now2mt();
		vhdr->attributes |= cpu_to_be32(HFSPLUS_VOL_UNMNT);
		vhdr->attributes &= cpu_to_be32(~HFSPLUS_VOL_INCNSTNT);
		mark_buffer_dirty(sbi->s_vhbh);
		sync_dirty_buffer(sbi->s_vhbh);

		hfsplus_sync_fs(sb, 1);
	}

	hfs_btree_close(sbi->cat_tree);
@@ -447,8 +445,7 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent)
	be32_add_cpu(&vhdr->write_count, 1);
	vhdr->attributes &= cpu_to_be32(~HFSPLUS_VOL_UNMNT);
	vhdr->attributes |= cpu_to_be32(HFSPLUS_VOL_INCNSTNT);
	mark_buffer_dirty(sbi->s_vhbh);
	sync_dirty_buffer(sbi->s_vhbh);
	hfsplus_sync_fs(sb, 1);

	if (!sbi->hidden_dir) {
		mutex_lock(&sbi->vh_mutex);