Skip to contentSkip to conversation

fibmap.f2fs: fix the wrong stat info

PATCH In review Chao Yu 2 participants 3 messages Jan 22, 2015 – Jan 26, 2015

lore
Share & tools
lore

Chao Yu

author
#0 lore raw

PATCH 1/1 fibmap.f2fs: fix the wrong stat info

fibmap shows ino, size, blocks with incorrectly decimal number, fix it.

Before:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 0]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 0]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 0]

--------------------------------------------

Patched:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 145642]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 499200]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 616]

--------------------------------------------

---
 tools/fibmap.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
tools/fibmap.c +3 -3
index a6a112b..2df8094 100644
@@ -33,14 +33,14 @@ void print_stat(struct stat64 *st)
 {
 	printf("--------------------------------------------\n");
 	printf("dev       [%d:%d]\n", major(st->st_dev), minor(st->st_dev));
-	printf("ino       [0x%8lx : %ld]\n", st->st_ino, st->st_ino);
+	printf("ino       [0x%8llx : %lld]\n", st->st_ino, st->st_ino);
 	printf("mode      [0x%8x : %d]\n", st->st_mode, st->st_mode);
 	printf("nlink     [0x%8lx : %ld]\n", st->st_nlink, st->st_nlink);
 	printf("uid       [0x%8x : %d]\n", st->st_uid, st->st_uid);
 	printf("gid       [0x%8x : %d]\n", st->st_gid, st->st_gid);
-	printf("size      [0x%8lx : %ld]\n", st->st_size, st->st_size);
+	printf("size      [0x%8llx : %lld]\n", st->st_size, st->st_size);
 	printf("blksize   [0x%8lx : %ld]\n", st->st_blksize, st->st_blksize);
-	printf("blocks    [0x%8lx : %ld]\n", st->st_blocks, st->st_blocks);
+	printf("blocks    [0x%8llx : %lld]\n", st->st_blocks, st->st_blocks);
 	printf("--------------------------------------------\n\n");
 }
 
Signature · 10 lines
2.2.1



------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
#1 lore raw

Hi Chao,

Quoted 44 lines · Chao Yu

fibmap shows ino, size, blocks with incorrectly decimal number, fix it.

Before:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 0]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 0]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 0]

--------------------------------------------

Patched:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 145642]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 499200]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 616]

--------------------------------------------

---
 tools/fibmap.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
tools/fibmap.c +1 -1
index a6a112b..2df8094 100644
@@ -33,14 +33,14 @@ void print_stat(struct stat64 *st)
 {
 	printf("--------------------------------------------\n");
 	printf("dev       [%d:%d]\n", major(st->st_dev), minor(st->st_dev));
-	printf("ino       [0x%8lx : %ld]\n", st->st_ino, st->st_ino);
+	printf("ino       [0x%8llx : %lld]\n", st->st_ino, st->st_ino);
 	printf("mode      [0x%8x : %d]\n", st->st_mode, st->st_mode);

tools/fibmap.c void print_stat(struct stat64 *st) · line 45

Quoted 10 lines
tools/fibmap.c +2 -2
 	printf("nlink     [0x%8lx : %ld]\n", st->st_nlink, st->st_nlink);
 	printf("uid       [0x%8x : %d]\n", st->st_uid, st->st_uid);
 	printf("gid       [0x%8x : %d]\n", st->st_gid, st->st_gid);
-	printf("size      [0x%8lx : %ld]\n", st->st_size, st->st_size);
+	printf("size      [0x%8llx : %lld]\n", st->st_size, st->st_size);
 	printf("blksize   [0x%8lx : %ld]\n", st->st_blksize, st->st_blksize);
-	printf("blocks    [0x%8lx : %ld]\n", st->st_blocks, st->st_blocks);
+	printf("blocks    [0x%8llx : %lld]\n", st->st_blocks, st->st_blocks);
 	printf("--------------------------------------------\n\n");
 }

It needs to use like this.
Could you check this out?

Thanks,

Quoted 1 line

From 5a510076b737b734bdeab95dd4b597cdb681fb29 Mon Sep 17 00:00:00 2001

From: Chao Yu <[email protected]>
Date: Thu, 22 Jan 2015 11:19:05 +0800
Subject: [PATCH] fibmap.f2fs: fix the wrong stat info

fibmap shows ino, size, blocks with incorrectly decimal number, fix it.

Before:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 0]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 0]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 0]

--------------------------------------------

Patched:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 145642]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 499200]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 616]

--------------------------------------------

---
 tools/fibmap.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
tools/fibmap.c +7 -3
index a6a112b..224b233 100644
@@ -12,6 +12,7 @@
 #include <linux/hdreg.h>
 #include <linux/types.h>
 #include <linux/fs.h>
+#include <inttypes.h>
 
 struct file_ext {
 	__u32 f_pos;
@@ -33,14 +34,17 @@ void print_stat(struct stat64 *st)
 {
 	printf("--------------------------------------------\n");
 	printf("dev       [%d:%d]\n", major(st->st_dev), minor(st->st_dev));
-	printf("ino       [0x%8lx : %ld]\n", st->st_ino, st->st_ino);
+	printf("ino       [0x%8"PRIx64" : %"PRIu64"]\n",
+						st->st_ino, st->st_ino);
 	printf("mode      [0x%8x : %d]\n", st->st_mode, st->st_mode);
 	printf("nlink     [0x%8lx : %ld]\n", st->st_nlink, st->st_nlink);
 	printf("uid       [0x%8x : %d]\n", st->st_uid, st->st_uid);
 	printf("gid       [0x%8x : %d]\n", st->st_gid, st->st_gid);
-	printf("size      [0x%8lx : %ld]\n", st->st_size, st->st_size);
+	printf("size      [0x%8"PRIx64" : %"PRIu64"]\n",
+						st->st_size, st->st_size);
 	printf("blksize   [0x%8lx : %ld]\n", st->st_blksize, st->st_blksize);
-	printf("blocks    [0x%8lx : %ld]\n", st->st_blocks, st->st_blocks);
+	printf("blocks    [0x%8"PRIx64" : %"PRIu64"]\n",
+					st->st_blocks, st->st_blocks);
 	printf("--------------------------------------------\n\n");
 }
 
Signature · 9 lines
2.1.1


------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
author
#2 lore raw

Hi Jaegeuk,

Quoted 59 lines

-----Original Message-----
From: Jaegeuk Kim [mailto:[email protected]]
Sent: Saturday, January 24, 2015 5:20 AM
To: Chao Yu
Cc: Changman Lee; [email protected]
Subject: Re: [f2fs-dev][PATCH] fibmap.f2fs: fix the wrong stat info

Hi Chao,

Quoted 49 lines · Chao Yu

fibmap shows ino, size, blocks with incorrectly decimal number, fix it.

Before:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 0]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 0]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 0]

--------------------------------------------

Patched:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 145642]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 499200]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 616]

--------------------------------------------

---
 tools/fibmap.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
tools/fibmap.c +2 -2
index a6a112b..2df8094 100644
@@ -33,14 +33,14 @@ void print_stat(struct stat64 *st)
 {
 	printf("--------------------------------------------\n");
 	printf("dev       [%d:%d]\n", major(st->st_dev), minor(st->st_dev));
-	printf("ino       [0x%8lx : %ld]\n", st->st_ino, st->st_ino);
+	printf("ino       [0x%8llx : %lld]\n", st->st_ino, st->st_ino);
 	printf("mode      [0x%8x : %d]\n", st->st_mode, st->st_mode);
 	printf("nlink     [0x%8lx : %ld]\n", st->st_nlink, st->st_nlink);
 	printf("uid       [0x%8x : %d]\n", st->st_uid, st->st_uid);
 	printf("gid       [0x%8x : %d]\n", st->st_gid, st->st_gid);
-	printf("size      [0x%8lx : %ld]\n", st->st_size, st->st_size);
+	printf("size      [0x%8llx : %lld]\n", st->st_size, st->st_size);
Quoted 8 lines

tools/fibmap.c void print_stat(struct stat64 *st) · line 49

Quoted 5 lines
tools/fibmap.c +1 -1
 	printf("blksize   [0x%8lx : %ld]\n", st->st_blksize, st->st_blksize);
-	printf("blocks    [0x%8lx : %ld]\n", st->st_blocks, st->st_blocks);
+	printf("blocks    [0x%8llx : %lld]\n", st->st_blocks, st->st_blocks);
 	printf("--------------------------------------------\n\n");
 }

It needs to use like this.
Could you check this out?

Very good, this can fix the portability issue, thanks. :)

Quoted 76 lines

Thanks,

From 5a510076b737b734bdeab95dd4b597cdb681fb29 Mon Sep 17 00:00:00 2001
From: Chao Yu <[email protected]>
Date: Thu, 22 Jan 2015 11:19:05 +0800
Subject: [PATCH] fibmap.f2fs: fix the wrong stat info

fibmap shows ino, size, blocks with incorrectly decimal number, fix it.

Before:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 0]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 0]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 0]

--------------------------------------------

Patched:
--------------------------------------------

dev       [8:16]
ino       [0x   238ea : 145642]
mode      [0x    81a4 : 33188]
nlink     [0x       1 : 1]
uid       [0x       0 : 0]
gid       [0x       0 : 0]
size      [0x   79e00 : 499200]
blksize   [0x    1000 : 4096]
blocks    [0x     268 : 616]

--------------------------------------------

---
 tools/fibmap.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
tools/fibmap.c +7 -4
index a6a112b..224b233 100644
@@ -12,6 +12,7 @@
 #include <linux/hdreg.h>
 #include <linux/types.h>
 #include <linux/fs.h>
+#include <inttypes.h>
 
 struct file_ext {
 	__u32 f_pos;
@@ -33,14 +34,17 @@ void print_stat(struct stat64 *st)
 {
 	printf("--------------------------------------------\n");
 	printf("dev       [%d:%d]\n", major(st->st_dev), minor(st->st_dev));
-	printf("ino       [0x%8lx : %ld]\n", st->st_ino, st->st_ino);
+	printf("ino       [0x%8"PRIx64" : %"PRIu64"]\n",
+						st->st_ino, st->st_ino);
 	printf("mode      [0x%8x : %d]\n", st->st_mode, st->st_mode);
 	printf("nlink     [0x%8lx : %ld]\n", st->st_nlink, st->st_nlink);
 	printf("uid       [0x%8x : %d]\n", st->st_uid, st->st_uid);
 	printf("gid       [0x%8x : %d]\n", st->st_gid, st->st_gid);
-	printf("size      [0x%8lx : %ld]\n", st->st_size, st->st_size);
+	printf("size      [0x%8"PRIx64" : %"PRIu64"]\n",
+						st->st_size, st->st_size);
 	printf("blksize   [0x%8lx : %ld]\n", st->st_blksize, st->st_blksize);
-	printf("blocks    [0x%8lx : %ld]\n", st->st_blocks, st->st_blocks);
+	printf("blocks    [0x%8"PRIx64" : %"PRIu64"]\n",
+					st->st_blocks, st->st_blocks);
 	printf("--------------------------------------------\n\n");
 }
 
--
Quoted 1 line

2.1.1

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/