Unverified Commit 691da571 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!11926 nilfs2: protect references to superblock parameters exposed in sysfs

parents e6e15830 48c4d3be
Loading
Loading
Loading
Loading
+33 −10
Original line number Diff line number Diff line
@@ -836,9 +836,15 @@ ssize_t nilfs_dev_revision_show(struct nilfs_dev_attr *attr,
				struct the_nilfs *nilfs,
				char *buf)
{
	struct nilfs_super_block **sbp = nilfs->ns_sbp;
	u32 major = le32_to_cpu(sbp[0]->s_rev_level);
	u16 minor = le16_to_cpu(sbp[0]->s_minor_rev_level);
	struct nilfs_super_block *raw_sb;
	u32 major;
	u16 minor;

	down_read(&nilfs->ns_sem);
	raw_sb = nilfs->ns_sbp[0];
	major = le32_to_cpu(raw_sb->s_rev_level);
	minor = le16_to_cpu(raw_sb->s_minor_rev_level);
	up_read(&nilfs->ns_sem);

	return sysfs_emit(buf, "%d.%d\n", major, minor);
}
@@ -856,8 +862,13 @@ ssize_t nilfs_dev_device_size_show(struct nilfs_dev_attr *attr,
				    struct the_nilfs *nilfs,
				    char *buf)
{
	struct nilfs_super_block **sbp = nilfs->ns_sbp;
	u64 dev_size = le64_to_cpu(sbp[0]->s_dev_size);
	struct nilfs_super_block *raw_sb;
	u64 dev_size;

	down_read(&nilfs->ns_sem);
	raw_sb = nilfs->ns_sbp[0];
	dev_size = le64_to_cpu(raw_sb->s_dev_size);
	up_read(&nilfs->ns_sem);

	return sysfs_emit(buf, "%llu\n", dev_size);
}
@@ -879,9 +890,15 @@ ssize_t nilfs_dev_uuid_show(struct nilfs_dev_attr *attr,
			    struct the_nilfs *nilfs,
			    char *buf)
{
	struct nilfs_super_block **sbp = nilfs->ns_sbp;
	struct nilfs_super_block *raw_sb;
	ssize_t len;

	return sysfs_emit(buf, "%pUb\n", sbp[0]->s_uuid);
	down_read(&nilfs->ns_sem);
	raw_sb = nilfs->ns_sbp[0];
	len = sysfs_emit(buf, "%pUb\n", raw_sb->s_uuid);
	up_read(&nilfs->ns_sem);

	return len;
}

static
@@ -889,10 +906,16 @@ ssize_t nilfs_dev_volume_name_show(struct nilfs_dev_attr *attr,
				    struct the_nilfs *nilfs,
				    char *buf)
{
	struct nilfs_super_block **sbp = nilfs->ns_sbp;
	struct nilfs_super_block *raw_sb;
	ssize_t len;

	down_read(&nilfs->ns_sem);
	raw_sb = nilfs->ns_sbp[0];
	len = scnprintf(buf, sizeof(raw_sb->s_volume_name), "%s\n",
			raw_sb->s_volume_name);
	up_read(&nilfs->ns_sem);

	return scnprintf(buf, sizeof(sbp[0]->s_volume_name), "%s\n",
			 sbp[0]->s_volume_name);
	return len;
}

static const char dev_readme_str[] =