f2fs-tools: get kernel version via uname(2)
PATCH 1/1 f2fs-tools: get kernel version via uname(2)
This patch introduces uname(2) to get kernel version.
Signed-off-by Jaegeuk Kim <[email protected]>
--- fsck/mount.c | 2 +- include/f2fs_fs.h | 1 + lib/libf2fs.c | 14 ++++++++++++++ mkfs/f2fs_format.c | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-)
fsck/mount.c +1 -1
@@ -625,7 +625,7 @@ int validate_super_block(struct f2fs_sb_info *sbi, int block)dev_read_version (c.version,0 ,VERSION_LEN );get_kernel_version (c.version); }else { -memset (c.version,0 ,VERSION_LEN ); +get_kernel_uname_version (c.version); }/* build sb version */
include/f2fs_fs.h +1 -0
@@ -1118,6 +1118,7 @@ extern int dev_reada_block(__u64);extern int dev_read_version (void *,__u64 ,size_t );extern void get_kernel_version (__u8 *); +extern void get_kernel_uname_version (__u8 *);f2fs_hash_t f2fs_dentry_hash (const unsigned char *,int );static inline bool f2fs_has_extra_isize (struct f2fs_inode *inode)
lib/libf2fs.c +14 -0
@@ -27,6 +27,7 @@#ifdef HAVE_SYS_SYSMACROS_H #include <sys/sysmacros.h> #endif +#include <sys/utsname.h> #ifndef WITH_ANDROID #ifdef HAVE_SCSI_SG_H #include <scsi/sg.h>
@@ -740,6 +741,17 @@ void get_kernel_version(__u8 *version)memset (version + i,0 ,VERSION_LEN +1 - i); } +void get_kernel_uname_version (__u8 *version) +{ +struct utsname buf; + +memset (version,0 ,VERSION_LEN ); +if (uname (&buf)) +return ; + +snprintf ((char *)version, +VERSION_LEN ,"%s %s" , buf.release, buf.version); +}#if defined(__linux__) && defined(_IO) && !defined(BLKGETSIZE )#define BLKGETSIZE _IO(0x12,96)
@@ -796,7 +808,9 @@ int get_device_info(int i) }if (c.kd ==-1 ) { +#if !defined(WITH_ANDROID ) && defined(__linux__) c.kd =open ("/proc/version" ,O_RDONLY ); +#endif if (c.kd <0 ) {MSG (0 ,"\tInfo: No support kernel version!\n" ); c.kd =-2 ;
mkfs/f2fs_format.c +1 -1
@@ -442,7 +442,7 @@ static int f2fs_prepare_super_block(void)get_kernel_version (c.version);MSG (0 ,"Info: format version with\n \"%s\"\n" , c.version); }else { -memset (c.version,0 ,VERSION_LEN ); +get_kernel_uname_version (c.version); }memcpy (sb->version, c.version,VERSION_LEN );
Signature · 6 lines
2.17.0.484.g0c8726318c-goog ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Change log from v1:
- fix build error by checking sys/utsname.h
This patch introduces uname(2) to get kernel version.
Signed-off-by Jaegeuk Kim <[email protected]>
--- configure.ac | 1 + fsck/mount.c | 2 +- include/f2fs_fs.h | 1 + lib/libf2fs.c | 20 ++++++++++++++++++++ mkfs/f2fs_format.c | 2 +- 5 files changed, 24 insertions(+), 2 deletions(-)
configure.ac +1 -0
@@ -102,6 +102,7 @@ AC_CHECK_HEADERS(m4_flatten([ sys/syscall.h sys/mount.h sys/sysmacros.h + sys/utsname.h sys/xattr.h unistd.h ]))
fsck/mount.c +1 -1
@@ -625,7 +625,7 @@ int validate_super_block(struct f2fs_sb_info *sbi, int block)dev_read_version (c.version,0 ,VERSION_LEN );get_kernel_version (c.version); }else { -memset (c.version,0 ,VERSION_LEN ); +get_kernel_uname_version (c.version); }/* build sb version */
include/f2fs_fs.h +1 -0
@@ -1118,6 +1118,7 @@ extern int dev_reada_block(__u64);extern int dev_read_version (void *,__u64 ,size_t );extern void get_kernel_version (__u8 *); +extern void get_kernel_uname_version (__u8 *);f2fs_hash_t f2fs_dentry_hash (const unsigned char *,int );static inline bool f2fs_has_extra_isize (struct f2fs_inode *inode)
lib/libf2fs.c +20 -0
@@ -27,6 +27,9 @@#ifdef HAVE_SYS_SYSMACROS_H #include <sys/sysmacros.h> #endif +#ifdef HAVE_SYS_UTSNAME_H +#include <sys/utsname.h> +#endif #ifndef WITH_ANDROID #ifdef HAVE_SCSI_SG_H #include <scsi/sg.h>
@@ -740,6 +743,21 @@ void get_kernel_version(__u8 *version)memset (version + i,0 ,VERSION_LEN +1 - i); } +void get_kernel_uname_version (__u8 *version) +{ +#ifdef HAVE_SYS_UTSNAME_H +struct utsname buf; + +memset (version,0 ,VERSION_LEN ); +if (uname (&buf)) +return ; + +snprintf ((char *)version, +VERSION_LEN ,"%s %s" , buf.release, buf.version); +#else +memset (version,0 ,VERSION_LEN ); +#endif +}#if defined(__linux__) && defined(_IO) && !defined(BLKGETSIZE )#define BLKGETSIZE _IO(0x12,96)
@@ -796,7 +814,9 @@ int get_device_info(int i) }if (c.kd ==-1 ) { +#if !defined(WITH_ANDROID ) && defined(__linux__) c.kd =open ("/proc/version" ,O_RDONLY ); +#endif if (c.kd <0 ) {MSG (0 ,"\tInfo: No support kernel version!\n" ); c.kd =-2 ;
mkfs/f2fs_format.c +1 -1
@@ -442,7 +442,7 @@ static int f2fs_prepare_super_block(void)get_kernel_version (c.version);MSG (0 ,"Info: format version with\n \"%s\"\n" , c.version); }else { -memset (c.version,0 ,VERSION_LEN ); +get_kernel_uname_version (c.version); }memcpy (sb->version, c.version,VERSION_LEN );
Signature · 6 lines
2.17.0.484.g0c8726318c-goog ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Quoted 3 lines · Jaegeuk Kim
This patch introduces uname(2) to get kernel version.
Signed-off-by Jaegeuk Kim <[email protected]>
Reviewed-by Chao Yu <[email protected]>
Thanks,
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot