From 55ca9ae5ecc5968e272e900b3e6e815fdeae683b Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 31 Oct 2002 12:21:05 -0500 Subject: [PATCH] flushb.c (ext2fs_sync_device): If the BLKFLSBUF ioctl succeeds, don't try the FDFLUSH ioctl that was required for floppies with older kernels. This avoids needless whining from the MD device driver. (Addresses Sourceforge bug #545832). --- lib/ext2fs/ChangeLog | 5 +++++ lib/ext2fs/flushb.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index 5f7d43b6..d1e4f18d 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,5 +1,10 @@ 2002-10-31 Theodore Ts'o + * flushb.c (ext2fs_sync_device): If the BLKFLSBUF ioctl succeeds, + don't try the FDFLUSH ioctl that was required for floppies + with older kernels. This avoids needless whining from the + MD device driver. (Addresses Sourceforge bug #545832). + * openfs.c (ext2fs_open): Fix bug which caused us to pass the wrong group_block to ext2fs_descriptor_block_loc if we're using the backup superblock/block group descriptors. diff --git a/lib/ext2fs/flushb.c b/lib/ext2fs/flushb.c index 282dca37..ed4d3901 100644 --- a/lib/ext2fs/flushb.c +++ b/lib/ext2fs/flushb.c @@ -62,12 +62,13 @@ errcode_t ext2fs_sync_device(int fd, int flushb) if (flushb) { #ifdef BLKFLSBUF - ioctl (fd, BLKFLSBUF, 0); /* In case this is a HD */ + if (ioctl (fd, BLKFLSBUF, 0) == 0) + return 0; #else #warning BLKFLSBUF not defined #endif #ifdef FDFLUSH - ioctl (fd, FDFLUSH, 0); /* In case this is floppy */ + ioctl (fd, FDFLUSH, 0); /* In case this is a floppy */ #else #warning FDFLUSH not defined #endif