From: Karel Zak Date: Mon, 10 Nov 2014 10:29:42 +0000 (+0100) Subject: include/statfs_magic: use macro rather than type for f_type X-Git-Tag: v2.26-rc1~230 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64d0cee6c00abb3efa89d53879c0bba15f7eb805;p=thirdparty%2Futil-linux.git include/statfs_magic: use macro rather than type for f_type Signed-off-by: Karel Zak --- diff --git a/include/statfs_magic.h b/include/statfs_magic.h index d27be1cffb..7397a4e5da 100644 --- a/include/statfs_magic.h +++ b/include/statfs_magic.h @@ -7,9 +7,9 @@ * If possible then don't depend on internal libc __SWORD_TYPE type. */ #ifdef __GNUC__ -typedef __typeof__( ((struct statfs *)0)->f_type ) ul_statfs_ftype_t; +#define F_TYPE_EQUAL(a, b) (a == (__typeof__(a)) b) #else -typedef __SWORD_TYPE ul_statfs_ftype_t; +#define F_TYPE_EQUAL(a, b) (a == (__SWORD_TYPE) b) #endif /* diff --git a/sys-utils/switch_root.c b/sys-utils/switch_root.c index c6a2eff8e7..534d44ac70 100644 --- a/sys-utils/switch_root.c +++ b/sys-utils/switch_root.c @@ -181,8 +181,8 @@ static int switchroot(const char *newroot) if (pid <= 0) { struct statfs stfs; if (fstatfs(cfd, &stfs) == 0 && - (stfs.f_type == (ul_statfs_ftype_t) STATFS_RAMFS_MAGIC || - stfs.f_type == (ul_statfs_ftype_t) STATFS_TMPFS_MAGIC)) + (F_TYPE_EQUAL(stfs.f_type, STATFS_RAMFS_MAGIC) || + F_TYPE_EQUAL(stfs.f_type, STATFS_TMPFS_MAGIC))) recursiveRemove(cfd); else warn(_("old root filesystem is not an initramfs"));