Re: Too large badblocks sysfs file (was: [PATCH v3 0/7] badblocks improvement for multiple bad block ranges)

From: Coly Li
Date: Thu Sep 23 2021 - 02:14:23 EST


On 9/23/21 2:08 PM, Greg Kroah-Hartman wrote:
On Thu, Sep 23, 2021 at 01:59:28PM +0800, Coly Li wrote:
Hi all the kernel gurus, and folks in mailing lists,

This is a question about exporting 4KB+ text information via sysfs
interface. I need advice on how to handle the problem.

Hi Greg,

This is the code in mainline kernel for quite long time.

Please do not do that. Seriously, that is not what sysfs is for, and is
an abuse of it.

sysfs is for "one value per file" and should never even get close to a
4kb limit. If it does, you are doing something really really wrong and
should just remove that sysfs file from the system and redesign your
api.

I understand this. And what I addressed is the problem I need to fix.

The code is there for almost 10 years, I just find it during my work on bad blocks API fixing.



Recently I work on the bad blocks API (block/badblocks.c) improvement, there
is a sysfs file to export the bad block ranges for me raid. E.g for a md
raid1 device, file
    /sys/block/md0/md/rd0/bad_blocks
may contain the following text content,
    64 32
   128 8
Ick, again, that's not ok at all. sysfs files should never have to be
parsed like this.

I cannot agree more with you. What I am asking for was ---- how to fix it ?

Thanks.

Coly Li