Fix fstatfs call for compilation on 32 bit systems (#9251)

Summary:
On some 32-bit systems, BTRFS_SUPER_MAGIC is unsigned while __fsword_t is signed.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/9251

Reviewed By: ajkr

Differential Revision: D32961651

Pulled By: pdillinger

fbshipit-source-id: 78e85fc1336f304a21e4d5961e60957c90daed63
main
Adam Retter 3 years ago committed by Facebook GitHub Bot
parent 80ac7412b5
commit c879910102
  1. 3
      env/io_posix.cc

3
env/io_posix.cc vendored

@ -1543,7 +1543,8 @@ PosixDirectory::PosixDirectory(int fd) : fd_(fd) {
#ifdef OS_LINUX #ifdef OS_LINUX
struct statfs buf; struct statfs buf;
int ret = fstatfs(fd, &buf); int ret = fstatfs(fd, &buf);
is_btrfs_ = (ret == 0 && buf.f_type == BTRFS_SUPER_MAGIC); is_btrfs_ = (ret == 0 && buf.f_type == static_cast<decltype(buf.f_type)>(
BTRFS_SUPER_MAGIC));
#endif #endif
} }

Loading…
Cancel
Save