diff options
Diffstat (limited to 'fs/btrfs/sysfs.c')
| -rw-r--r-- | fs/btrfs/sysfs.c | 93 | 
1 files changed, 44 insertions, 49 deletions
| diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c index 25a6f587852b..f9eff3b0f77c 100644 --- a/fs/btrfs/sysfs.c +++ b/fs/btrfs/sysfs.c @@ -177,7 +177,7 @@ static ssize_t btrfs_feature_attr_show(struct kobject *kobj,  	} else  		val = can_modify_feature(fa); -	return scnprintf(buf, PAGE_SIZE, "%d\n", val); +	return sysfs_emit(buf, "%d\n", val);  }  static ssize_t btrfs_feature_attr_store(struct kobject *kobj, @@ -330,7 +330,7 @@ static const struct attribute_group btrfs_feature_attr_group = {  static ssize_t rmdir_subvol_show(struct kobject *kobj,  				 struct kobj_attribute *ka, char *buf)  { -	return scnprintf(buf, PAGE_SIZE, "0\n"); +	return sysfs_emit(buf, "0\n");  }  BTRFS_ATTR(static_feature, rmdir_subvol, rmdir_subvol_show); @@ -345,12 +345,12 @@ static ssize_t supported_checksums_show(struct kobject *kobj,  		 * This "trick" only works as long as 'enum btrfs_csum_type' has  		 * no holes in it  		 */ -		ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%s%s", -				(i == 0 ? "" : " "), btrfs_super_csum_name(i)); +		ret += sysfs_emit_at(buf, ret, "%s%s", (i == 0 ? "" : " "), +				     btrfs_super_csum_name(i));  	} -	ret += scnprintf(buf + ret, PAGE_SIZE - ret, "\n"); +	ret += sysfs_emit_at(buf, ret, "\n");  	return ret;  }  BTRFS_ATTR(static_feature, supported_checksums, supported_checksums_show); @@ -358,7 +358,7 @@ BTRFS_ATTR(static_feature, supported_checksums, supported_checksums_show);  static ssize_t send_stream_version_show(struct kobject *kobj,  					struct kobj_attribute *ka, char *buf)  { -	return snprintf(buf, PAGE_SIZE, "%d\n", BTRFS_SEND_STREAM_VERSION); +	return sysfs_emit(buf, "%d\n", BTRFS_SEND_STREAM_VERSION);  }  BTRFS_ATTR(static_feature, send_stream_version, send_stream_version_show); @@ -378,9 +378,8 @@ static ssize_t supported_rescue_options_show(struct kobject *kobj,  	int i;  	for (i = 0; i < ARRAY_SIZE(rescue_opts); i++) -		ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%s%s", -				 (i ? " " : ""), rescue_opts[i]); -	ret += scnprintf(buf + ret, PAGE_SIZE - ret, "\n"); +		ret += sysfs_emit_at(buf, ret, "%s%s", (i ? " " : ""), rescue_opts[i]); +	ret += sysfs_emit_at(buf, ret, "\n");  	return ret;  }  BTRFS_ATTR(static_feature, supported_rescue_options, @@ -394,10 +393,10 @@ static ssize_t supported_sectorsizes_show(struct kobject *kobj,  	/* 4K sector size is also supported with 64K page size */  	if (PAGE_SIZE == SZ_64K) -		ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%u ", SZ_4K); +		ret += sysfs_emit_at(buf, ret, "%u ", SZ_4K);  	/* Only sectorsize == PAGE_SIZE is now supported */ -	ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%lu\n", PAGE_SIZE); +	ret += sysfs_emit_at(buf, ret, "%lu\n", PAGE_SIZE);  	return ret;  } @@ -437,7 +436,7 @@ static ssize_t btrfs_discardable_bytes_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%lld\n", +	return sysfs_emit(buf, "%lld\n",  			atomic64_read(&fs_info->discard_ctl.discardable_bytes));  }  BTRFS_ATTR(discard, discardable_bytes, btrfs_discardable_bytes_show); @@ -448,7 +447,7 @@ static ssize_t btrfs_discardable_extents_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%d\n", +	return sysfs_emit(buf, "%d\n",  			atomic_read(&fs_info->discard_ctl.discardable_extents));  }  BTRFS_ATTR(discard, discardable_extents, btrfs_discardable_extents_show); @@ -459,8 +458,8 @@ static ssize_t btrfs_discard_bitmap_bytes_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%llu\n", -			fs_info->discard_ctl.discard_bitmap_bytes); +	return sysfs_emit(buf, "%llu\n", +			  fs_info->discard_ctl.discard_bitmap_bytes);  }  BTRFS_ATTR(discard, discard_bitmap_bytes, btrfs_discard_bitmap_bytes_show); @@ -470,7 +469,7 @@ static ssize_t btrfs_discard_bytes_saved_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%lld\n", +	return sysfs_emit(buf, "%lld\n",  		atomic64_read(&fs_info->discard_ctl.discard_bytes_saved));  }  BTRFS_ATTR(discard, discard_bytes_saved, btrfs_discard_bytes_saved_show); @@ -481,8 +480,8 @@ static ssize_t btrfs_discard_extent_bytes_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%llu\n", -			fs_info->discard_ctl.discard_extent_bytes); +	return sysfs_emit(buf, "%llu\n", +			  fs_info->discard_ctl.discard_extent_bytes);  }  BTRFS_ATTR(discard, discard_extent_bytes, btrfs_discard_extent_bytes_show); @@ -492,8 +491,8 @@ static ssize_t btrfs_discard_iops_limit_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%u\n", -			READ_ONCE(fs_info->discard_ctl.iops_limit)); +	return sysfs_emit(buf, "%u\n", +			  READ_ONCE(fs_info->discard_ctl.iops_limit));  }  static ssize_t btrfs_discard_iops_limit_store(struct kobject *kobj, @@ -523,8 +522,8 @@ static ssize_t btrfs_discard_kbps_limit_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%u\n", -			READ_ONCE(fs_info->discard_ctl.kbps_limit)); +	return sysfs_emit(buf, "%u\n", +			  READ_ONCE(fs_info->discard_ctl.kbps_limit));  }  static ssize_t btrfs_discard_kbps_limit_store(struct kobject *kobj, @@ -553,8 +552,8 @@ static ssize_t btrfs_discard_max_discard_size_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%llu\n", -			READ_ONCE(fs_info->discard_ctl.max_discard_size)); +	return sysfs_emit(buf, "%llu\n", +			  READ_ONCE(fs_info->discard_ctl.max_discard_size));  }  static ssize_t btrfs_discard_max_discard_size_store(struct kobject *kobj, @@ -627,7 +626,7 @@ static ssize_t btrfs_show_u64(u64 *value_ptr, spinlock_t *lock, char *buf)  	val = *value_ptr;  	if (lock)  		spin_unlock(lock); -	return scnprintf(buf, PAGE_SIZE, "%llu\n", val); +	return sysfs_emit(buf, "%llu\n", val);  }  static ssize_t global_rsv_size_show(struct kobject *kobj, @@ -673,7 +672,7 @@ static ssize_t raid_bytes_show(struct kobject *kobj,  			val += block_group->used;  	}  	up_read(&sinfo->groups_sem); -	return scnprintf(buf, PAGE_SIZE, "%llu\n", val); +	return sysfs_emit(buf, "%llu\n", val);  }  /* @@ -771,7 +770,7 @@ static ssize_t btrfs_label_show(struct kobject *kobj,  	ssize_t ret;  	spin_lock(&fs_info->super_lock); -	ret = scnprintf(buf, PAGE_SIZE, label[0] ? "%s\n" : "%s", label); +	ret = sysfs_emit(buf, label[0] ? "%s\n" : "%s", label);  	spin_unlock(&fs_info->super_lock);  	return ret; @@ -819,7 +818,7 @@ static ssize_t btrfs_nodesize_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->nodesize); +	return sysfs_emit(buf, "%u\n", fs_info->super_copy->nodesize);  }  BTRFS_ATTR(, nodesize, btrfs_nodesize_show); @@ -829,8 +828,7 @@ static ssize_t btrfs_sectorsize_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%u\n", -			 fs_info->super_copy->sectorsize); +	return sysfs_emit(buf, "%u\n", fs_info->super_copy->sectorsize);  }  BTRFS_ATTR(, sectorsize, btrfs_sectorsize_show); @@ -840,7 +838,7 @@ static ssize_t btrfs_clone_alignment_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->sectorsize); +	return sysfs_emit(buf, "%u\n", fs_info->super_copy->sectorsize);  }  BTRFS_ATTR(, clone_alignment, btrfs_clone_alignment_show); @@ -852,7 +850,7 @@ static ssize_t quota_override_show(struct kobject *kobj,  	int quota_override;  	quota_override = test_bit(BTRFS_FS_QUOTA_OVERRIDE, &fs_info->flags); -	return scnprintf(buf, PAGE_SIZE, "%d\n", quota_override); +	return sysfs_emit(buf, "%d\n", quota_override);  }  static ssize_t quota_override_store(struct kobject *kobj, @@ -890,8 +888,7 @@ static ssize_t btrfs_metadata_uuid_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%pU\n", -			fs_info->fs_devices->metadata_uuid); +	return sysfs_emit(buf, "%pU\n", fs_info->fs_devices->metadata_uuid);  }  BTRFS_ATTR(, metadata_uuid, btrfs_metadata_uuid_show); @@ -902,9 +899,9 @@ static ssize_t btrfs_checksum_show(struct kobject *kobj,  	struct btrfs_fs_info *fs_info = to_fs_info(kobj);  	u16 csum_type = btrfs_super_csum_type(fs_info->super_copy); -	return scnprintf(buf, PAGE_SIZE, "%s (%s)\n", -			btrfs_super_csum_name(csum_type), -			crypto_shash_driver_name(fs_info->csum_shash)); +	return sysfs_emit(buf, "%s (%s)\n", +			  btrfs_super_csum_name(csum_type), +			  crypto_shash_driver_name(fs_info->csum_shash));  }  BTRFS_ATTR(, checksum, btrfs_checksum_show); @@ -941,7 +938,7 @@ static ssize_t btrfs_exclusive_operation_show(struct kobject *kobj,  			str = "UNKNOWN\n";  			break;  	} -	return scnprintf(buf, PAGE_SIZE, "%s", str); +	return sysfs_emit(buf, "%s", str);  }  BTRFS_ATTR(, exclusive_operation, btrfs_exclusive_operation_show); @@ -950,7 +947,7 @@ static ssize_t btrfs_generation_show(struct kobject *kobj,  {  	struct btrfs_fs_info *fs_info = to_fs_info(kobj); -	return scnprintf(buf, PAGE_SIZE, "%llu\n", fs_info->generation); +	return sysfs_emit(buf, "%llu\n", fs_info->generation);  }  BTRFS_ATTR(, generation, btrfs_generation_show); @@ -1028,8 +1025,7 @@ static ssize_t btrfs_bg_reclaim_threshold_show(struct kobject *kobj,  	struct btrfs_fs_info *fs_info = to_fs_info(kobj);  	ssize_t ret; -	ret = scnprintf(buf, PAGE_SIZE, "%d\n", -			READ_ONCE(fs_info->bg_reclaim_threshold)); +	ret = sysfs_emit(buf, "%d\n", READ_ONCE(fs_info->bg_reclaim_threshold));  	return ret;  } @@ -1471,7 +1467,7 @@ static ssize_t btrfs_devinfo_in_fs_metadata_show(struct kobject *kobj,  	val = !!test_bit(BTRFS_DEV_STATE_IN_FS_METADATA, &device->dev_state); -	return scnprintf(buf, PAGE_SIZE, "%d\n", val); +	return sysfs_emit(buf, "%d\n", val);  }  BTRFS_ATTR(devid, in_fs_metadata, btrfs_devinfo_in_fs_metadata_show); @@ -1484,7 +1480,7 @@ static ssize_t btrfs_devinfo_missing_show(struct kobject *kobj,  	val = !!test_bit(BTRFS_DEV_STATE_MISSING, &device->dev_state); -	return scnprintf(buf, PAGE_SIZE, "%d\n", val); +	return sysfs_emit(buf, "%d\n", val);  }  BTRFS_ATTR(devid, missing, btrfs_devinfo_missing_show); @@ -1498,7 +1494,7 @@ static ssize_t btrfs_devinfo_replace_target_show(struct kobject *kobj,  	val = !!test_bit(BTRFS_DEV_STATE_REPLACE_TGT, &device->dev_state); -	return scnprintf(buf, PAGE_SIZE, "%d\n", val); +	return sysfs_emit(buf, "%d\n", val);  }  BTRFS_ATTR(devid, replace_target, btrfs_devinfo_replace_target_show); @@ -1509,8 +1505,7 @@ static ssize_t btrfs_devinfo_scrub_speed_max_show(struct kobject *kobj,  	struct btrfs_device *device = container_of(kobj, struct btrfs_device,  						   devid_kobj); -	return scnprintf(buf, PAGE_SIZE, "%llu\n", -			 READ_ONCE(device->scrub_speed_max)); +	return sysfs_emit(buf, "%llu\n", READ_ONCE(device->scrub_speed_max));  }  static ssize_t btrfs_devinfo_scrub_speed_max_store(struct kobject *kobj, @@ -1538,7 +1533,7 @@ static ssize_t btrfs_devinfo_writeable_show(struct kobject *kobj,  	val = !!test_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state); -	return scnprintf(buf, PAGE_SIZE, "%d\n", val); +	return sysfs_emit(buf, "%d\n", val);  }  BTRFS_ATTR(devid, writeable, btrfs_devinfo_writeable_show); @@ -1549,14 +1544,14 @@ static ssize_t btrfs_devinfo_error_stats_show(struct kobject *kobj,  						   devid_kobj);  	if (!device->dev_stats_valid) -		return scnprintf(buf, PAGE_SIZE, "invalid\n"); +		return sysfs_emit(buf, "invalid\n");  	/*  	 * Print all at once so we get a snapshot of all values from the same  	 * time. Keep them in sync and in order of definition of  	 * btrfs_dev_stat_values.  	 */ -	return scnprintf(buf, PAGE_SIZE, +	return sysfs_emit(buf,  		"write_errs %d\n"  		"read_errs %d\n"  		"flush_errs %d\n" |