From: Jaegeuk Kim <jaegeuk@kernel.org>
To: Ben Chang <ben.chang@sonicsky.net>
Cc: linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [f2fs-dev] [PATCH] f2fs-tools: fix cannot get bdev information
Date: Tue, 21 Jun 2022 09:39:27 -0700 [thread overview]
Message-ID: <YrH0P0jvYooUFAln@google.com> (raw)
In-Reply-To: <20220620035301.63951-1-ben.chang@sonicsky.net>
Thanks, applied.
On 06/20, Ben Chang wrote:
> Some device like android phone doesn't show the dev number path in
> /dev/block/, for example:
>
> $ ls /dev/block/
> bootdevice dm-6 loop24 loop43 ram13 sda5 sdd4 sde24 sde43 sde62 sdf1
> by-name dm-7 loop25 loop44 ram14 sda6 sdd5 sde25 sde44 sde63 sdf10
> dm-0 dm-8 loop26 loop45 ram15 sda7 sdd6 sde26 sde45 sde64 sdf11
> dm-1 dm-9 loop27 loop46 ram2 sda8 sdd7 sde27 sde46 sde65 sdf12
> dm-10 loop0 loop28 loop47 ram3 sda9 sde sde28 sde47 sde66 sdf13
> dm-11 loop1 loop29 loop48 ram4 sdb sde1 sde29 sde48 sde67 sdf14
> dm-12 loop10 loop3 loop49 ram5 sdb1 sde10 sde3 sde49 sde68 sdf15
> dm-13 loop11 loop30 loop5 ram6 sdb2 sde11 sde30 sde5 sde69 sdf16
> dm-14 loop12 loop31 loop50 ram7 sdb3 sde12 sde31 sde50 sde7 sdf17
> dm-15 loop13 loop32 loop51 ram8 sdb4 sde13 sde32 sde51 sde70 sdf18
> dm-16 loop14 loop33 loop6 ram9 sdb5 sde14 sde33 sde52 sde71 sdf19
> dm-17 loop15 loop34 loop7 sda sdc sde15 sde34 sde53 sde72 sdf2
> dm-18 loop16 loop35 loop8 sda1 sdc1 sde16 sde35 sde54 sde73 sdf3
> dm-19 loop17 loop36 loop9 sda10 sdc2 sde17 sde36 sde55 sde74 sdf4
> dm-2 loop18 loop37 mapper sda11 sdc3 sde18 sde37 sde56 sde75 sdf5
> dm-20 loop19 loop38 platform sda12 sdc4 sde19 sde38 sde57 sde76 sdf6
> dm-21 loop2 loop39 ram0 sda13 sdc5 sde2 sde39 sde58 sde77 sdf7
> dm-3 loop20 loop4 ram1 sda14 sdd sde20 sde4 sde59 sde78 sdf8
> dm-4 loop21 loop40 ram10 sda2 sdd1 sde21 sde40 sde6 sde8 sdf9
> dm-5 loop22 loop41 ram11 sda3 sdd2 sde22 sde41 sde60 sde9 vold
> dm-53 loop23 loop42 ram12 sda4 sdd3 sde23 sde42 sde61 sdf zram0
>
> this will cause stat_bdev cannot show bdev information.
>
> But most of devices (include android) show dev number path in /sys/dev/block, for example:
>
> $ ls /sys/dev/block
> 1:0 254:1 254:6 259:21 259:38 259:54 7:104 7:24 7:368 8:11 8:4 8:70 8:87
> 1:1 254:10 254:7 259:22 259:39 259:55 7:112 7:240 7:376 8:12 8:48 8:71 8:88
> 1:10 254:11 254:8 259:23 259:4 259:56 7:120 7:248 7:384 8:13 8:49 8:72 8:89
> 1:11 254:12 254:9 259:24 259:40 259:57 7:128 7:256 7:392 8:14 8:5 8:73 8:9
> 1:12 254:13 259:0 259:25 259:41 259:58 7:136 7:264 7:40 8:16 8:50 8:74 8:90
> 1:13 254:14 259:1 259:26 259:42 259:59 7:144 7:272 7:400 8:17 8:51 8:75 8:91
> 1:14 254:15 259:10 259:27 259:43 259:6 7:152 7:280 7:408 8:18 8:52 8:76 8:92
> 1:15 254:16 259:11 259:28 259:44 259:60 7:16 7:288 7:48 8:19 8:53 8:77 8:93
> 1:2 254:17 259:12 259:29 259:45 259:61 7:160 7:296 7:56 8:2 8:54 8:78 8:94
> 1:3 254:18 259:13 259:3 259:46 259:62 7:168 7:304 7:64 8:20 8:55 8:79 8:95
> 1:4 254:19 259:14 259:30 259:47 259:63 7:176 7:312 7:72 8:21 8:6 8:8
> 1:5 254:2 259:15 259:31 259:48 259:64 7:184 7:32 7:8 8:3 8:64 8:80
> 1:6 254:20 259:16 259:32 259:49 259:65 7:192 7:320 7:80 8:32 8:65 8:81
> 1:7 254:21 259:17 259:33 259:5 259:66 7:200 7:328 7:88 8:33 8:66 8:82
> 1:8 254:3 259:18 259:34 259:50 259:7 7:208 7:336 7:96 8:34 8:67 8:83
> 1:9 254:4 259:19 259:35 259:51 259:8 7:216 7:344 8:0 8:35 8:68 8:84
> 253:0 254:5 259:2 259:36 259:52 259:9 7:224 7:352 8:1 8:36 8:69 8:85
> 254:0 254:53 259:20 259:37 259:53 7:0 7:232 7:360 8:10 8:37 8:7 8:86
>
> so change the access path from /dev/block to /sys/dev/block
> (same method of libudev)
>
> Before:
>
> $./f2fs.fibmap testfile_4k
>
> ----------------file info-------------------
> testfile_4k :
> --------------------------------------------
> dev [254:53]
> ino [0x 3dda : 15834]
> mode [0x 81b6 : 33206]
> nlink [0x 1 : 1]
> uid [0x 0 : 0]
> gid [0x 0 : 0]
> size [0x 40000 : 262144]
> blksize [0x 1000 : 4096]
> blocks [0x 200 : 512]
> --------------------------------------------
>
> file_pos start_blk end_blk blks
> 0 2256926 2256987 62
> 253952 2150337 2150338 2
>
> Patched:
> $./f2fs.fibmap testfile_4k
> ----------------bdev info-------------------
> devname = 254:53
> start_lba = 0
>
> ----------------file info-------------------
> testfile_4k :
> --------------------------------------------
> dev [254:53]
> ino [0x 3dda : 15834]
> mode [0x 81b6 : 33206]
> nlink [0x 1 : 1]
> uid [0x 0 : 0]
> gid [0x 0 : 0]
> size [0x 40000 : 262144]
> blksize [0x 1000 : 4096]
> blocks [0x 200 : 512]
> --------------------------------------------
>
> file_pos start_blk end_blk blks
> 0 2256926 2256987 62
> 253952 2150337 2150338 2
>
> Signed-off-by: Ben Chang <ben.chang@sonicsky.net>
> ---
> tools/fibmap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/fibmap.c b/tools/fibmap.c
> index 3238f29..9f94b53 100644
> --- a/tools/fibmap.c
> +++ b/tools/fibmap.c
> @@ -102,7 +102,7 @@ static void stat_bdev(struct stat *st, unsigned int *start_lba)
> char linkname[32] = { 0, };
> int fd;
>
> - sprintf(devname, "/dev/block/%d:%d", major(st->st_dev), minor(st->st_dev));
> + sprintf(devname, "/sys/dev/block/%d:%d", major(st->st_dev), minor(st->st_dev));
>
> fd = open(devname, O_RDONLY);
> if (fd < 0)
> --
> 2.25.1
>
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2022-06-21 16:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-20 3:53 [f2fs-dev] [PATCH] f2fs-tools: fix cannot get bdev information Ben Chang
2022-06-21 16:39 ` Jaegeuk Kim [this message]
2022-06-22 13:02 ` Chao Yu
-- strict thread matches above, loose matches on Subject: below --
2022-06-17 2:51 Ben Chang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YrH0P0jvYooUFAln@google.com \
--to=jaegeuk@kernel.org \
--cc=ben.chang@sonicsky.net \
--cc=linux-f2fs-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.