From: Darrick J. Wong Date: Wed, 8 Apr 2020 13:48:15 +0000 (-0400) Subject: libxfs: check return value of device flush when closing device X-Git-Tag: v5.6.0-rc1~7 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=023ba280e4b44c9767510664701089d6ff52c262;p=users%2Fhch%2Fxfsprogs.git libxfs: check return value of device flush when closing device Although the libxfs_umount function flushes all devices when unmounting the incore filesystem, the libxfs io code will flush the device again when the application close them. Check and report any errors that might happen, though this is unlikely. Coverity-id: 1460464 Signed-off-by: Darrick J. Wong Reviewed-by: Allison Collins Signed-off-by: Eric Sandeen --- diff --git a/libxfs/init.c b/libxfs/init.c index 3e6436c14..cb8967bc7 100644 --- a/libxfs/init.c +++ b/libxfs/init.c @@ -166,13 +166,18 @@ libxfs_device_close(dev_t dev) for (d = 0; d < MAX_DEVS; d++) if (dev_map[d].dev == dev) { - int fd; + int fd, ret; fd = dev_map[d].fd; dev_map[d].dev = dev_map[d].fd = 0; - fsync(fd); - platform_flush_device(fd, dev); + ret = platform_flush_device(fd, dev); + if (ret) { + ret = -errno; + fprintf(stderr, + _("%s: flush of device %lld failed, err=%d"), + progname, (long long)dev, ret); + } close(fd); return;