[PATCH 2/5] libxfs: check return value of device flush when closing device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>

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 <darrick.wong@xxxxxxxxxx>
---
 libxfs/init.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)


diff --git a/libxfs/init.c b/libxfs/init.c
index 3e6436c1..cb8967bc 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;




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux